Some minor fixes to app_sync.py
This commit is contained in:
parent
b06a9b578e
commit
7413437b4c
2 changed files with 89 additions and 1 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
"""
|
"""
|
||||||
Helper module for sync.
|
Helper module for sync.
|
||||||
|
|
||||||
|
Remember to set sync:master variable in site.conf!
|
||||||
|
|
||||||
(c) 2021 Sakuragasaki46.
|
(c) 2021 Sakuragasaki46.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -118,7 +120,7 @@ def main():
|
||||||
failed += 1
|
failed += 1
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
if pageinfo["touched"] > p.touched:
|
if pageinfo["touched"] > p.touched.timestamp():
|
||||||
update_page(p, pageinfo)
|
update_page(p, pageinfo)
|
||||||
passed += 1
|
passed += 1
|
||||||
with open(DATABASE_DIR + "/last_sync", "w") as fw:
|
with open(DATABASE_DIR + "/last_sync", "w") as fw:
|
||||||
|
|
|
||||||
86
extensions/circles.py
Normal file
86
extensions/circles.py
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
# (C) 2020-2021 Sakuragasaki46.
|
||||||
|
# See LICENSE for copying info.
|
||||||
|
|
||||||
|
'''
|
||||||
|
Circles (people) extension for Salvi.
|
||||||
|
'''
|
||||||
|
|
||||||
|
from peewee import *
|
||||||
|
from ..app import _getconf
|
||||||
|
|
||||||
|
#### HELPERS ####
|
||||||
|
|
||||||
|
def _getmbt(s):
|
||||||
|
s = s.upper()
|
||||||
|
try:
|
||||||
|
return 16 + (
|
||||||
|
dict(I=0, E=8)[s[0]] |
|
||||||
|
dict(N=0, S=4)[s[1]] |
|
||||||
|
dict(T=0, F=2)[s[2]] |
|
||||||
|
dict(J=0, P=1)[s[3]]
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
return 2
|
||||||
|
|
||||||
|
|
||||||
|
def _putmbt(s):
|
||||||
|
if s & 16 == 0:
|
||||||
|
return "1x38b"
|
||||||
|
return ''.join((
|
||||||
|
'IE'[(s & 8) >> 3],
|
||||||
|
'NS'[(s & 4) >> 2],
|
||||||
|
'TF'[(s & 2) >> 1],
|
||||||
|
'JP'[s & 1]
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
#### DATABASE SCHEMA ####
|
||||||
|
|
||||||
|
database = SqliteDatabase(_getconf("config", "database_dir") + '/circles.sqlite')
|
||||||
|
|
||||||
|
class BaseModel(Model):
|
||||||
|
class Meta:
|
||||||
|
database = database
|
||||||
|
|
||||||
|
class MbTypeField(Field):
|
||||||
|
field_type = 'integer'
|
||||||
|
|
||||||
|
def db_value(self, value):
|
||||||
|
return _getmbt(value)
|
||||||
|
def python_value(self, value):
|
||||||
|
return _putmbt(value)
|
||||||
|
|
||||||
|
ST_ORANGE = 0
|
||||||
|
ST_YELLOW = 1
|
||||||
|
ST_GREEN = 2
|
||||||
|
ST_RED = -1
|
||||||
|
|
||||||
|
class Person(BaseModel):
|
||||||
|
code = IntegerField(primary_key=True)
|
||||||
|
display_name = CharField(256)
|
||||||
|
first_name = CharField(128, null=True)
|
||||||
|
last_name = CharField(128, null=True)
|
||||||
|
circle = IntegerField(default=7, index=True)
|
||||||
|
status = IntegerField(default=ST_ORANGE, index=True)
|
||||||
|
type = MbTypeField(default=0, index=True)
|
||||||
|
class Meta:
|
||||||
|
indexes = (
|
||||||
|
(('last_name', 'first_name'), False),
|
||||||
|
)
|
||||||
|
|
||||||
|
def init_db():
|
||||||
|
database.create_tables([Person])
|
||||||
|
|
||||||
|
#### ROUTING ####
|
||||||
|
|
||||||
|
bp = Blueprint('circles', __name__,
|
||||||
|
url_prefix='/circles')
|
||||||
|
|
||||||
|
@bp.route('/init-config')
|
||||||
|
def _init_config():
|
||||||
|
init_db()
|
||||||
|
return redirect('/circles')
|
||||||
|
|
||||||
|
@bp.route('/')
|
||||||
|
def homepage():
|
||||||
|
return render_template("base.html")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue