diff --git a/static-data/default-plugins/flow/flowapi.py b/static-data/default-plugins/flow/flowapi.py
index 3d97abba..ef27a39f 100755
--- a/static-data/default-plugins/flow/flowapi.py
+++ b/static-data/default-plugins/flow/flowapi.py
@@ -1,9 +1,15 @@
-'''
- Onionr - Private P2P Communication
+"""Onionr - Private P2P Communication.
- This file primarily serves to allow specific fetching of flow board messages
-'''
-'''
+This file primarily serves to allow specific fetching of flow board messages
+"""
+import json
+import os
+
+from flask import Response, Blueprint
+from deadsimplekv import DeadSimpleKV
+
+from utils import identifyhome
+"""
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
@@ -16,13 +22,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
-'''
-import json
-import os
+"""
-from flask import Response, request, redirect, Blueprint, abort
-from utils import identifyhome
-import deadsimplekv as simplekv
flask_blueprint = Blueprint('flow', __name__)
with open(os.path.dirname(os.path.realpath(__file__)) + '/info.json', 'r') as info_file:
@@ -31,7 +32,9 @@ with open(os.path.dirname(os.path.realpath(__file__)) + '/info.json', 'r') as in
@flask_blueprint.route('/flow/getpostsbyboard/')
def get_post_by_board(board):
- board_cache = simplekv.DeadSimpleKV(identifyhome.identify_home() + '/board-index.cache.json', flush_on_exit=False)
+ board_cache = DeadSimpleKV(
+ identifyhome.identify_home() + '/board-index.cache.json',
+ flush_on_exit=False)
board_cache.refresh()
posts = board_cache.get(board)
if posts is None:
@@ -44,7 +47,9 @@ def get_post_by_board(board):
def get_post_by_board_with_offset(board, offset):
offset = int(offset)
OFFSET_COUNT = 10
- board_cache = simplekv.DeadSimpleKV(identifyhome.identify_home() + '/board-index.cache.json', flush_on_exit=False)
+ board_cache = DeadSimpleKV(
+ identifyhome.identify_home() + '/board-index.cache.json',
+ flush_on_exit=False)
board_cache.refresh()
posts = board_cache.get(board)
if posts is None:
@@ -57,3 +62,17 @@ def get_post_by_board_with_offset(board, offset):
@flask_blueprint.route('/flow/version')
def get_version():
return Response(version)
+
+@flask_blueprint.route('/flow/removefromcache//', methods=['POST'])
+def remove_from_cache(board, name):
+ board_cache = DeadSimpleKV(identifyhome.identify_home() +
+ '/board-index.cache.json',
+ flush_on_exit=False)
+ board_cache.refresh()
+ posts = board_cache.get(board)
+ try:
+ posts.remove(name)
+ except ValueError:
+ pass
+ board_cache.put(board, posts)
+ return Response('success')
diff --git a/static-data/www/board/board.js b/static-data/www/board/board.js
index c70510ae..821a549b 100755
--- a/static-data/www/board/board.js
+++ b/static-data/www/board/board.js
@@ -171,22 +171,40 @@ function loadMessage(blockHash, blockList, count, channel){
method: 'GET',
headers: {
"token": webpass
- }})
- .then((resp) => resp.json())
- .then(function(data) {
- let before = blockList[count - 1]
- let delay = 2000
- if (typeof before == "undefined"){
- before = null
- } else {
- let existing = document.getElementsByClassName('cMsgBox')
- for (x = 0; x < existing.length; x++){
- if (existing[x].getAttribute('data-bl') === before){
- delay = 0
+ }}).then(function(response) {
+ if (!response.ok) {
+ let on404 = function() {
+ if (response.status == 404){
+ fetch('/flow/removefromcache/' + channel + '/' + blockHash, {
+ method: 'POST',
+ headers: {
+ "content-type": "application/json",
+ "token": webpass
+ }
+ })
+ }
+ else{
+ console.log(error)
+ }
+ }()
+ return
+ }
+ response.json().then(function(data){
+ let before = blockList[count - 1]
+ let delay = 2000
+ if (typeof before == "undefined"){
+ before = null
+ } else {
+ let existing = document.getElementsByClassName('cMsgBox')
+ for (x = 0; x < existing.length; x++){
+ if (existing[x].getAttribute('data-bl') === before){
+ delay = 0
+ }
}
}
- }
- setTimeout(function(){appendMessages(data, blockHash, before, channel)}, delay)
+ setTimeout(function(){appendMessages(data, blockHash, before, channel)}, delay)
+ })
+ return response;
})
}
@@ -226,3 +244,5 @@ newPostForm.onsubmit = function(){
})
return false
}
+
+