kopia lustrzana https://github.com/dgtlmoon/changedetection.io
Adding helper method to remove text files that are not in the index
rodzic
878584f043
commit
d304449cb1
|
@ -347,3 +347,19 @@ class ChangeDetectionStore:
|
||||||
self.sync_to_json()
|
self.sync_to_json()
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|
||||||
|
# Go through the datastore path and remove any snapshots that are not mentioned in the index
|
||||||
|
# This usually is not used, but can be handy.
|
||||||
|
def remove_unused_snapshots(self):
|
||||||
|
print ("Removing snapshots from datastore that are not in the index..")
|
||||||
|
|
||||||
|
index=[]
|
||||||
|
for uuid in self.data['watching']:
|
||||||
|
for id in self.data['watching'][uuid]['history']:
|
||||||
|
index.append(self.data['watching'][uuid]['history'][str(id)])
|
||||||
|
|
||||||
|
import pathlib
|
||||||
|
# Only in the sub-directories
|
||||||
|
for item in pathlib.Path(self.datastore_path).rglob("*/*txt"):
|
||||||
|
if not str(item) in index:
|
||||||
|
print ("Removing",item)
|
||||||
|
os.unlink(item)
|
||||||
|
|
|
@ -35,12 +35,13 @@ def init_app_secret(datastore_path):
|
||||||
def main(argv):
|
def main(argv):
|
||||||
ssl_mode = False
|
ssl_mode = False
|
||||||
port = 5000
|
port = 5000
|
||||||
|
do_cleanup = False
|
||||||
|
|
||||||
# Must be absolute so that send_from_directory doesnt try to make it relative to backend/
|
# Must be absolute so that send_from_directory doesnt try to make it relative to backend/
|
||||||
datastore_path = os.path.join(os.getcwd(), "datastore")
|
datastore_path = os.path.join(os.getcwd(), "datastore")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(argv, "sd:p:", "purge")
|
opts, args = getopt.getopt(argv, "csd:p:", "port")
|
||||||
except getopt.GetoptError:
|
except getopt.GetoptError:
|
||||||
print('backend.py -s SSL enable -p [port] -d [datastore path]')
|
print('backend.py -s SSL enable -p [port] -d [datastore path]')
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
@ -60,12 +61,20 @@ def main(argv):
|
||||||
if opt == '-d':
|
if opt == '-d':
|
||||||
datastore_path = arg
|
datastore_path = arg
|
||||||
|
|
||||||
|
# Cleanup (remove text files that arent in the index)
|
||||||
|
if opt == '-c':
|
||||||
|
do_cleanup = True
|
||||||
|
|
||||||
# isnt there some @thingy to attach to each route to tell it, that this route needs a datastore
|
# isnt there some @thingy to attach to each route to tell it, that this route needs a datastore
|
||||||
app_config = {'datastore_path': datastore_path}
|
app_config = {'datastore_path': datastore_path}
|
||||||
|
|
||||||
datastore = store.ChangeDetectionStore(datastore_path=app_config['datastore_path'])
|
datastore = store.ChangeDetectionStore(datastore_path=app_config['datastore_path'])
|
||||||
app = backend.changedetection_app(app_config, datastore)
|
app = backend.changedetection_app(app_config, datastore)
|
||||||
|
|
||||||
|
# Go into cleanup mode
|
||||||
|
if do_cleanup:
|
||||||
|
datastore.remove_unused_snapshots()
|
||||||
|
|
||||||
app.config['datastore_path'] = datastore_path
|
app.config['datastore_path'] = datastore_path
|
||||||
app.secret_key = init_app_secret(app_config['datastore_path'])
|
app.secret_key = init_app_secret(app_config['datastore_path'])
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue