mirror of
https://github.com/armbian/dl-router.git
synced 2026-01-06 10:32:39 -08:00
added reload support
This commit is contained in:
22
README.md
22
README.md
@@ -1,2 +1,24 @@
|
||||
# dl-router
|
||||
router of download URLs
|
||||
|
||||
currently designed for app folder to be mapped into a usgi container.
|
||||
see sample launch script
|
||||
`launch_redirect.sh`
|
||||
|
||||
expects `userdata.csv` in app folder.. map as needed.
|
||||
|
||||
run local
|
||||
```
|
||||
cd app
|
||||
export FLASK_APP=main
|
||||
python -m flask run --host 0.0.0.0 --port 5000
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
`/status`
|
||||
meant for simplee healtcheck. returns 200 OK
|
||||
|
||||
`/reload`
|
||||
Flushes cache and reloads userdata file. Return JSON of what new userdata is
|
||||
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
#!/usr/bin/env python
|
||||
import csv
|
||||
|
||||
|
||||
class Parser():
|
||||
def __init__(self, csv_file=None):
|
||||
self._parsed_data = None
|
||||
self.csv_file = csv_file
|
||||
# other useful things here
|
||||
|
||||
@property
|
||||
def parsed_data(self):
|
||||
if self._parsed_data is not None:
|
||||
return self._parsed_data
|
||||
self._parsed_data = self.get_data()
|
||||
return self._parsed_data
|
||||
|
||||
def transform_csv_data(self, data):
|
||||
transformed = {}
|
||||
key = ""
|
||||
@@ -22,14 +26,18 @@ class Parser():
|
||||
print("Missing fields in data '{0}'. Error: '{1}'".format(line, e))
|
||||
break
|
||||
return transformed
|
||||
|
||||
def import_csv(self):
|
||||
with open(self.csv_file) as f:
|
||||
csvreader = csv.reader(f, delimiter='/')
|
||||
data = list(csvreader)
|
||||
return data
|
||||
|
||||
def get_data(self):
|
||||
data = self.import_csv()
|
||||
return self.transform_csv_data(data)
|
||||
|
||||
parser = Parser('userdata.csv')
|
||||
print(parser.parsed_data)
|
||||
def reload(self):
|
||||
self._parsed_data = None
|
||||
self.get_data()
|
||||
return self.parsed_data
|
||||
|
||||
@@ -36,11 +36,19 @@ def status():
|
||||
return "OK"
|
||||
|
||||
|
||||
@app.route('/reload')
|
||||
def reload():
|
||||
global dl_map
|
||||
dl_map = parser.reload()
|
||||
return dl_map
|
||||
|
||||
|
||||
@app.route('/', defaults={'path': ''})
|
||||
@app.route('/<path:path>')
|
||||
def catch_all(path):
|
||||
return redirect(get_redirect(path, "127.0.0.1"), 302)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Only for debugging while developing
|
||||
app.run(host='0.0.0.0', debug=False, port=80)
|
||||
|
||||
Reference in New Issue
Block a user