Fix flake8
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
CONFIG = 'config.demo'
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Конфигурация
|
||||
DEBUG = True
|
||||
@@ -28,7 +25,7 @@ SECRET_KEY = '''0123456789'''
|
||||
# Логирование
|
||||
LOG_FILE = DIR_DATA + '/myapp.log'
|
||||
LONG_LOG_FORMAT = '%(asctime)s - [%(name)s.%(levelname)s] [%(threadName)s, %(module)s.%(funcName)s@%(lineno)d] %(message)s'
|
||||
LOG_FILE_SIZE = 128 # Размер файла лога в МБ
|
||||
LOG_FILE_SIZE = 128 # Размер файла лога в МБ
|
||||
|
||||
# Количество выводимых элементов на странице
|
||||
ITEMS_ON_PAGE = 100
|
||||
|
||||
@@ -5,6 +5,6 @@ server {
|
||||
error_log /var/log/nginx/myapp-error.log info;
|
||||
location / {
|
||||
include uwsgi_params;
|
||||
uwsgi_pass unix:///var/run/uwsgi/myapp.sock;
|
||||
uwsgi_pass unix:///run/uwsgi/myapp.sock;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import config
|
||||
import logging
|
||||
@@ -28,6 +26,7 @@ app.logger.addHandler(handler)
|
||||
|
||||
from . import lib, models
|
||||
|
||||
|
||||
@app.context_processor
|
||||
def inject_data():
|
||||
result = {}
|
||||
@@ -38,29 +37,30 @@ def inject_data():
|
||||
|
||||
return result
|
||||
|
||||
|
||||
@app.teardown_appcontext
|
||||
def shutdown_session(exception=None):
|
||||
models.db_session.close_all()
|
||||
|
||||
# API
|
||||
from . import ns_api
|
||||
from . import ns_api # noqa F401
|
||||
|
||||
# Авторизация
|
||||
from . import ns_login
|
||||
from . import ns_login # noqa F401
|
||||
|
||||
# Заметки
|
||||
from . import ns_note
|
||||
from . import ns_note # noqa F401
|
||||
|
||||
# Статьи
|
||||
from . import ns_page
|
||||
from . import ns_page # noqa F401
|
||||
|
||||
# Профиль
|
||||
from . import ns_profile
|
||||
from . import ns_profile # noqa F401
|
||||
|
||||
# Метки
|
||||
from . import ns_tag
|
||||
from . import ns_tag # noqa F401
|
||||
|
||||
# Пользователи
|
||||
from . import ns_user
|
||||
from . import ns_user # noqa F401
|
||||
|
||||
from . import views
|
||||
from . import views # noqa F401
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
import datetime
|
||||
|
||||
@@ -21,7 +19,7 @@ def login_required(func):
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==session['user_id']
|
||||
models.User.id == session['user_id']
|
||||
).first()
|
||||
if user:
|
||||
user.last_activity = datetime.datetime.now()
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .users import LoginForm
|
||||
from .page import PageEdit
|
||||
|
||||
__all__ = []
|
||||
@@ -1,16 +0,0 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from wtforms import (
|
||||
Form,
|
||||
TextField,
|
||||
TextAreaField
|
||||
)
|
||||
|
||||
|
||||
class PageEdit(Form):
|
||||
title = TextField('Заголовок')
|
||||
text = TextAreaField('Текст')
|
||||
@@ -1,12 +0,0 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from wtforms import Form, TextField, PasswordField
|
||||
|
||||
|
||||
class LoginForm(Form):
|
||||
username = TextField('Имя пользователя')
|
||||
password = PasswordField('Пароль')
|
||||
@@ -1,12 +1,10 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .pagination import Pagination, getpage
|
||||
from .passwd import pwgen, get_hash_password
|
||||
from .storage import gettree, gethashtree
|
||||
from .info import get_user
|
||||
from .pagination import Pagination, getpage # noqa F401
|
||||
from .passwd import pwgen, get_hash_password # noqa F401
|
||||
from .storage import gettree, gethashtree # noqa F401
|
||||
from .info import get_user # noqa F401
|
||||
|
||||
__all__ = []
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import session, request
|
||||
from .. import app, models
|
||||
from flask import session
|
||||
from .. import models
|
||||
|
||||
|
||||
def get_user():
|
||||
"""
|
||||
Получить текущего пользователя
|
||||
"""Получить текущего пользователя
|
||||
"""
|
||||
result = None
|
||||
if 'user_id' in session:
|
||||
result = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==session['user_id']
|
||||
models.User.id == session['user_id']
|
||||
).first()
|
||||
if result is None:
|
||||
session.pop('logged_in', None)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from math import ceil
|
||||
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import uuid
|
||||
import random
|
||||
import hashlib
|
||||
|
||||
|
||||
def pwgen(length=15, hex=False):
|
||||
"""
|
||||
Генератор пароля
|
||||
"""Генератор пароля
|
||||
"""
|
||||
keylist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
if hex:
|
||||
@@ -22,9 +20,9 @@ def pwgen(length=15, hex=False):
|
||||
password.append(a_char)
|
||||
return ''.join(password)
|
||||
|
||||
|
||||
def get_hash_password(password, salt=None):
|
||||
"""
|
||||
Получить хеш пароля SHA-512
|
||||
"""Получить хеш пароля SHA-512
|
||||
"""
|
||||
if salt is None:
|
||||
salt = uuid.uuid4().hex
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
|
||||
def gettree(number, count=3):
|
||||
"""
|
||||
@@ -16,6 +15,7 @@ def gettree(number, count=3):
|
||||
result.append(newline[i*count:i*count+count])
|
||||
return result
|
||||
|
||||
|
||||
def gethashtree(hash, count=3):
|
||||
"""
|
||||
Сформировать дерево каталогов
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import scoped_session, sessionmaker
|
||||
@@ -25,16 +23,16 @@ Base = declarative_base()
|
||||
Base.query = db_session.query_property()
|
||||
|
||||
# Пользователи
|
||||
from .users import User
|
||||
from .users import User # noqa F401
|
||||
|
||||
# Метки
|
||||
from .tag import Tag
|
||||
from .tag import Tag # noqa F401
|
||||
|
||||
# Статьи
|
||||
from .page import Page, TagPage
|
||||
from .page import Page, TagPage # noqa F401
|
||||
|
||||
# Заметки
|
||||
from .note import Note, TagNote
|
||||
from .note import Note, TagNote # noqa F401
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
import datetime
|
||||
from sqlalchemy import Column, Boolean, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from . import Base
|
||||
@@ -20,8 +18,8 @@ class Note(Base):
|
||||
user_id = Column(Integer, ForeignKey('user.id'))
|
||||
title = Column(String)
|
||||
body = Column(String, default='')
|
||||
created = Column(DateTime) # Дата создания
|
||||
updated = Column(DateTime) # Дата обновления
|
||||
created = Column(DateTime) # Дата создания
|
||||
updated = Column(DateTime) # Дата обновления
|
||||
|
||||
# Связи
|
||||
user = relationship(
|
||||
@@ -31,9 +29,8 @@ class Note(Base):
|
||||
)
|
||||
tags = relationship("TagNote", primaryjoin="Note.id==TagNote.note_id")
|
||||
|
||||
|
||||
def __init__(self, user, title):
|
||||
assert type(user).__name__=='User', app.logger.info('Не передан объект User')
|
||||
assert type(user).__name__ == 'User', 'Не передан объект User'
|
||||
self.user_id = user.id
|
||||
self.title = title
|
||||
self.created = datetime.datetime.now()
|
||||
@@ -53,15 +50,23 @@ class TagNote(Base):
|
||||
id = Column(Integer, primary_key=True)
|
||||
note_id = Column(Integer, ForeignKey('note.id'))
|
||||
tag_id = Column(Integer, ForeignKey('tag.id'))
|
||||
created = Column(DateTime) # Дата создания
|
||||
created = Column(DateTime) # Дата создания
|
||||
|
||||
# Связи
|
||||
note = relationship("Note", primaryjoin="TagNote.note_id==Note.id", uselist=False)
|
||||
tag = relationship("Tag", primaryjoin="TagNote.tag_id==Tag.id", uselist=False)
|
||||
note = relationship(
|
||||
"Note",
|
||||
primaryjoin="TagNote.note_id==Note.id",
|
||||
uselist=False
|
||||
)
|
||||
tag = relationship(
|
||||
"Tag",
|
||||
primaryjoin="TagNote.tag_id==Tag.id",
|
||||
uselist=False
|
||||
)
|
||||
|
||||
def __init__(self, note, tag):
|
||||
assert type(note).__name__=='Note', app.logger.info('Не передан объект Note')
|
||||
assert type(tag).__name__=='Tag', app.logger.info('Не передан объект Tag')
|
||||
assert type(note).__name__ == 'Note', 'Не передан объект Note'
|
||||
assert type(tag).__name__ == 'Tag', 'Не передан объект Tag'
|
||||
self.note_id = note.id
|
||||
self.tag_id = tag.id
|
||||
self.created = datetime.datetime.now()
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
import datetime
|
||||
from sqlalchemy import Column, Boolean, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from . import Base
|
||||
|
||||
|
||||
class Page(Base):
|
||||
"""
|
||||
Страницы
|
||||
"""Страницы
|
||||
"""
|
||||
__tablename__ = "page"
|
||||
|
||||
@@ -21,8 +18,8 @@ class Page(Base):
|
||||
user_id = Column(Integer, ForeignKey('user.id'))
|
||||
title = Column(String)
|
||||
body = Column(String, default='')
|
||||
created = Column(DateTime) # Дата создания
|
||||
updated = Column(DateTime) # Дата обновления
|
||||
created = Column(DateTime) # Дата создания
|
||||
updated = Column(DateTime) # Дата обновления
|
||||
|
||||
# Связи
|
||||
user = relationship(
|
||||
@@ -32,9 +29,8 @@ class Page(Base):
|
||||
)
|
||||
tags = relationship("TagPage", primaryjoin="Page.id==TagPage.page_id")
|
||||
|
||||
|
||||
def __init__(self, user, title):
|
||||
assert type(user).__name__=='User', app.logger.info('Не передан объект User')
|
||||
assert type(user).__name__ == 'User', 'Не передан объект User'
|
||||
self.user_id = user.id
|
||||
self.title = title
|
||||
self.created = datetime.datetime.now()
|
||||
@@ -54,15 +50,23 @@ class TagPage(Base):
|
||||
id = Column(Integer, primary_key=True)
|
||||
page_id = Column(Integer, ForeignKey('page.id'))
|
||||
tag_id = Column(Integer, ForeignKey('tag.id'))
|
||||
created = Column(DateTime) # Дата создания
|
||||
created = Column(DateTime) # Дата создания
|
||||
|
||||
# Связи
|
||||
page = relationship("Page", primaryjoin="TagPage.page_id==Page.id", uselist=False)
|
||||
tag = relationship("Tag", primaryjoin="TagPage.tag_id==Tag.id", uselist=False)
|
||||
page = relationship(
|
||||
"Page",
|
||||
primaryjoin="TagPage.page_id==Page.id",
|
||||
uselist=False
|
||||
)
|
||||
tag = relationship(
|
||||
"Tag",
|
||||
primaryjoin="TagPage.tag_id==Tag.id",
|
||||
uselist=False
|
||||
)
|
||||
|
||||
def __init__(self, page, tag):
|
||||
assert type(page).__name__=='Page', app.logger.info('Не передан объект Page')
|
||||
assert type(tag).__name__=='Tag', app.logger.info('Не передан объект Tag')
|
||||
assert type(page).__name__ == 'Page', 'Не передан объект Page'
|
||||
assert type(tag).__name__ == 'Tag', 'Не передан объект Tag'
|
||||
self.page_id = page.id
|
||||
self.tag_id = tag.id
|
||||
self.created = datetime.datetime.now()
|
||||
|
||||
@@ -6,21 +6,16 @@
|
||||
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
import datetime
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy import Column, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from . import Base
|
||||
from .. import app
|
||||
|
||||
|
||||
class Tag(Base):
|
||||
"""
|
||||
Теги, метки
|
||||
"""Теги, метки
|
||||
"""
|
||||
__tablename__ = "tag"
|
||||
|
||||
@@ -37,7 +32,6 @@ class Tag(Base):
|
||||
return "<Tag('%s')>" % (self.name)
|
||||
|
||||
def as_dict(self):
|
||||
"""
|
||||
Возвращает словарь
|
||||
"""Возвращает словарь
|
||||
"""
|
||||
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import datetime
|
||||
from sqlalchemy import (
|
||||
Table,
|
||||
Column,
|
||||
Boolean,
|
||||
Integer,
|
||||
@@ -20,8 +17,7 @@ from . import Base
|
||||
|
||||
|
||||
class User(Base):
|
||||
"""
|
||||
Пользователи
|
||||
"""Пользователи
|
||||
"""
|
||||
__tablename__ = "user"
|
||||
|
||||
@@ -31,11 +27,16 @@ class User(Base):
|
||||
disabled = Column(Boolean, default=True)
|
||||
created = Column(DateTime)
|
||||
|
||||
# Связи
|
||||
pages = relationship("Page", primaryjoin="Page.user_id==User.id")
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.created = datetime.datetime.utcnow()
|
||||
|
||||
def as_dict(self):
|
||||
return {c.name: getattr(self, c.name)
|
||||
return {
|
||||
c.name: getattr(self, c.name)
|
||||
for c in self.__table__.columns
|
||||
if c.name!='password'}
|
||||
if c.name != 'password'
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from functools import wraps
|
||||
from flask_jsonrpc import JSONRPC
|
||||
@@ -10,6 +8,7 @@ from flask import session
|
||||
|
||||
from .. import app, models
|
||||
|
||||
|
||||
def login_required(func):
|
||||
@wraps(func)
|
||||
def decorated_function(*args, **kwargs):
|
||||
@@ -17,7 +16,7 @@ def login_required(func):
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==session['user_id']
|
||||
models.User.id == session['user_id']
|
||||
).first()
|
||||
if user:
|
||||
return func(*args, **kwargs)
|
||||
@@ -29,9 +28,10 @@ def login_required(func):
|
||||
raise Exception('Необходима авторизация')
|
||||
return decorated_function
|
||||
|
||||
|
||||
jsonrpc = JSONRPC(app, '/api')
|
||||
|
||||
from . import (
|
||||
from . import ( # noqa F401
|
||||
login,
|
||||
note,
|
||||
page,
|
||||
|
||||
@@ -2,26 +2,23 @@ __author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru/'
|
||||
|
||||
import string
|
||||
|
||||
from flask import session
|
||||
from flask_jsonrpc.exceptions import InvalidRequestError
|
||||
|
||||
from . import jsonrpc
|
||||
from .. import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('login')
|
||||
def login(username: str, password: str)->bool:
|
||||
def login(username: str, password: str) -> bool:
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.name==username,
|
||||
models.User.password==lib.get_hash_password(
|
||||
models.User.name == username,
|
||||
models.User.password == lib.get_hash_password(
|
||||
password,
|
||||
app.config['SECRET_KEY']
|
||||
),
|
||||
models.User.disabled==False
|
||||
models.User.disabled == False
|
||||
).first()
|
||||
if user is None:
|
||||
raise ValueError
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from . import jsonrpc, login_required
|
||||
from .. import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('note')
|
||||
def note_id(id: int)->dict:
|
||||
def note_id(id: int) -> dict:
|
||||
"""Заметка
|
||||
"""
|
||||
note = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id
|
||||
models.Note.id == id
|
||||
).first()
|
||||
if note is None:
|
||||
raise ValueError
|
||||
@@ -28,7 +27,7 @@ def note_id(id: int)->dict:
|
||||
|
||||
@jsonrpc.method('note.add')
|
||||
@login_required
|
||||
def note_add(title: str, body: str)->dict:
|
||||
def note_add(title: str, body: str) -> dict:
|
||||
"""Добавление новой заметки
|
||||
"""
|
||||
newNote = models.Note(
|
||||
@@ -47,7 +46,7 @@ def note_add(title: str, body: str)->dict:
|
||||
|
||||
@jsonrpc.method('note.destroy')
|
||||
@login_required
|
||||
def note_destroy(id: int)->bool:
|
||||
def note_destroy(id: int) -> bool:
|
||||
"""Полное уничтожение заметки
|
||||
|
||||
Аргументы:
|
||||
@@ -56,7 +55,7 @@ def note_destroy(id: int)->bool:
|
||||
note = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id
|
||||
models.Note.id == id
|
||||
).first()
|
||||
if note is None:
|
||||
raise ValueError
|
||||
@@ -69,13 +68,13 @@ def note_destroy(id: int)->bool:
|
||||
|
||||
@jsonrpc.method('note.update')
|
||||
@login_required
|
||||
def note_update(id: int, title: str, body: str)->dict:
|
||||
def note_update(id: int, title: str, body: str) -> dict:
|
||||
"""Обновить заметку
|
||||
"""
|
||||
note = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id
|
||||
models.Note.id == id
|
||||
).first()
|
||||
if note is None:
|
||||
raise ValueError
|
||||
@@ -92,7 +91,7 @@ def note_update(id: int, title: str, body: str)->dict:
|
||||
|
||||
|
||||
@jsonrpc.method('notes')
|
||||
def notes_list(page: int)->list:
|
||||
def notes_list(page: int) -> list:
|
||||
"""Список заметок
|
||||
"""
|
||||
notes = models.db_session.query(
|
||||
@@ -118,7 +117,7 @@ def notes_list(page: int)->list:
|
||||
|
||||
|
||||
@jsonrpc.method('notes.count')
|
||||
def notes_count()->int:
|
||||
def notes_count() -> int:
|
||||
"""Количество заметок
|
||||
"""
|
||||
result = models.db_session.query(
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from . import jsonrpc, login_required
|
||||
from .. import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('page')
|
||||
def page_id(id: int)->dict:
|
||||
def page_id(id: int) -> dict:
|
||||
"""Статья
|
||||
"""
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
@@ -28,7 +27,7 @@ def page_id(id: int)->dict:
|
||||
|
||||
@jsonrpc.method('page.add')
|
||||
@login_required
|
||||
def page_add(title: str, body: str)->dict:
|
||||
def page_add(title: str, body: str) -> dict:
|
||||
"""Добавление новой статьи
|
||||
"""
|
||||
newPage = models.Page(
|
||||
@@ -47,7 +46,7 @@ def page_add(title: str, body: str)->dict:
|
||||
|
||||
@jsonrpc.method('page.destroy')
|
||||
@login_required
|
||||
def page_destroy(id: int)->bool:
|
||||
def page_destroy(id: int) -> bool:
|
||||
"""Полное уничтожение статьи
|
||||
|
||||
Аргументы:
|
||||
@@ -56,7 +55,7 @@ def page_destroy(id: int)->bool:
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
@@ -69,13 +68,13 @@ def page_destroy(id: int)->bool:
|
||||
|
||||
@jsonrpc.method('page.update')
|
||||
@login_required
|
||||
def page_update(id: int, title: str, text: str)->dict:
|
||||
def page_update(id: int, title: str, text: str) -> dict:
|
||||
"""Обновить статью
|
||||
"""
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
@@ -92,7 +91,7 @@ def page_update(id: int, title: str, text: str)->dict:
|
||||
|
||||
|
||||
@jsonrpc.method('pages')
|
||||
def pages_list(page: int)->list:
|
||||
def pages_list(page: int) -> list:
|
||||
"""Список статей
|
||||
"""
|
||||
pages = models.db_session.query(
|
||||
@@ -118,7 +117,7 @@ def pages_list(page: int)->list:
|
||||
|
||||
|
||||
@jsonrpc.method('pages.count')
|
||||
def pages_count()->int:
|
||||
def pages_count() -> int:
|
||||
"""Общее количество статей
|
||||
"""
|
||||
result = models.db_session.query(
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
|
||||
from . import (
|
||||
from . import ( # noqa F401
|
||||
note,
|
||||
page,
|
||||
tag
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
@@ -10,29 +8,29 @@ from ... import app, lib, models
|
||||
|
||||
@jsonrpc.method('tag.note.add')
|
||||
@login_required
|
||||
def tag_note_add(tag: int, id: int)->dict:
|
||||
def tag_note_add(tag: int, id: int) -> dict:
|
||||
"""Добавление тега в заметку
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
models.Note.id == id,
|
||||
models.Note.user_id == lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
models.Tag.id == tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tagRow.id,
|
||||
models.TagNote.note_id==noteRow.id
|
||||
models.TagNote.tag_id == tagRow.id,
|
||||
models.TagNote.note_id == noteRow.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
@@ -48,29 +46,29 @@ def tag_note_add(tag: int, id: int)->dict:
|
||||
|
||||
@jsonrpc.method('tag.note.delete')
|
||||
@login_required
|
||||
def tag_note_delete(tag: int, id: int)->bool:
|
||||
def tag_note_delete(tag: int, id: int) -> bool:
|
||||
"""Удаление тега из заметки
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
models.Note.id == id,
|
||||
models.Note.user_id == lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
models.Tag.id == tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tag,
|
||||
models.TagNote.note_id==id
|
||||
models.TagNote.tag_id == tag,
|
||||
models.TagNote.note_id == id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
@@ -81,25 +79,25 @@ def tag_note_delete(tag: int, id: int)->bool:
|
||||
|
||||
@jsonrpc.method('tag.notes')
|
||||
@login_required
|
||||
def tag_notes_list(id: int, page: int)->list:
|
||||
def tag_notes_list(id: int, page: int) -> list:
|
||||
"""Список заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
models.Tag.id == id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
models.TagNote.tag_id == id
|
||||
)
|
||||
notes = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.user_id == lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).order_by(
|
||||
models.Note.title.asc()
|
||||
@@ -122,25 +120,25 @@ def tag_notes_list(id: int, page: int)->list:
|
||||
|
||||
@jsonrpc.method('tag.notes.count')
|
||||
@login_required
|
||||
def tag_notes_count(id: int)->int:
|
||||
def tag_notes_count(id: int) -> int:
|
||||
"""Общее количество заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
models.Tag.id == id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
models.TagNote.tag_id == id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.user_id == lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).count()
|
||||
return result
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
@@ -10,28 +8,28 @@ from ... import app, lib, models
|
||||
|
||||
@jsonrpc.method('tag.page.add')
|
||||
@login_required
|
||||
def tag_page_add(tag: int, id: int)->dict:
|
||||
def tag_page_add(tag: int, id: int) -> dict:
|
||||
"""Добавление тега на страницы
|
||||
"""
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
models.Tag.id == tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tagRow.id,
|
||||
models.TagPage.page_id==page.id
|
||||
models.TagPage.tag_id == tagRow.id,
|
||||
models.TagPage.page_id == page.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
@@ -47,14 +45,14 @@ def tag_page_add(tag: int, id: int)->dict:
|
||||
|
||||
@jsonrpc.method('tag.page.delete)')
|
||||
@login_required
|
||||
def tag_page_delete(tag: int, id: int)->bool:
|
||||
def tag_page_delete(tag: int, id: int) -> bool:
|
||||
"""Удаление тега со страницы
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tag,
|
||||
models.TagPage.page_id==id
|
||||
models.TagPage.tag_id == tag,
|
||||
models.TagPage.page_id == id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
@@ -64,20 +62,20 @@ def tag_page_delete(tag: int, id: int)->bool:
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages')
|
||||
def tag_pages_list(id: int, page: int)->list:
|
||||
def tag_pages_list(id: int, page: int) -> list:
|
||||
"""Список статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
models.Tag.id == id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
models.TagPage.tag_id == id
|
||||
)
|
||||
pages = models.db_session.query(
|
||||
models.Page
|
||||
@@ -104,20 +102,20 @@ def tag_pages_list(id: int, page: int)->list:
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages.count')
|
||||
def tag_pages_count(id: int)->int:
|
||||
def tag_pages_count(id: int) -> int:
|
||||
"""Общее количество статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
models.Tag.id == id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
models.TagPage.tag_id == id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Page
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
from ... import models
|
||||
|
||||
|
||||
@jsonrpc.method('tag.add')
|
||||
@login_required
|
||||
def tag_add(name: str)->dict:
|
||||
def tag_add(name: str) -> dict:
|
||||
"""Добавить новый тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
@@ -29,13 +27,13 @@ def tag_add(name: str)->dict:
|
||||
|
||||
@jsonrpc.method('tag.delete')
|
||||
@login_required
|
||||
def tag_delete(id: int)->bool:
|
||||
def tag_delete(id: int) -> bool:
|
||||
"""Удалить тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
models.Tag.id == id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
@@ -46,14 +44,14 @@ def tag_delete(id: int)->bool:
|
||||
|
||||
|
||||
@jsonrpc.method('tag.exist')
|
||||
def tag_exist(name: str)->dict:
|
||||
def tag_exist(name: str) -> dict:
|
||||
"""Проверить существует ли тег и вернуть информацию о нём
|
||||
"""
|
||||
text = name.lower().strip()
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.name==text
|
||||
models.Tag.name == text
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
@@ -65,7 +63,7 @@ def tag_exist(name: str)->dict:
|
||||
|
||||
|
||||
@jsonrpc.method('tags')
|
||||
def tags_list()->list:
|
||||
def tags_list() -> list:
|
||||
"""Список тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
@@ -80,7 +78,7 @@ def tags_list()->list:
|
||||
|
||||
|
||||
@jsonrpc.method('tags.groups')
|
||||
def tags_groups()->dict:
|
||||
def tags_groups() -> dict:
|
||||
"""Облако тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
|
||||
@@ -1,28 +1,26 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from . import jsonrpc, login_required
|
||||
from . import jsonrpc
|
||||
from .. import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('user.pages')
|
||||
def user_pages_list(id: int, page: int)->list:
|
||||
def user_pages_list(id: int, page: int) -> list:
|
||||
"""Список статей пользователя
|
||||
"""
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==id
|
||||
models.User.id == id
|
||||
).first()
|
||||
if user is None:
|
||||
raise ValueError
|
||||
pages = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.user_id==id
|
||||
models.Page.user_id == id
|
||||
).order_by(
|
||||
models.Page.title.asc()
|
||||
)
|
||||
@@ -44,26 +42,26 @@ def user_pages_list(id: int, page: int)->list:
|
||||
|
||||
|
||||
@jsonrpc.method('user.pages.count')
|
||||
def user_pages_count(id: int)->int:
|
||||
def user_pages_count(id: int) -> int:
|
||||
"""Общее количество статей
|
||||
"""
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==id
|
||||
models.User.id == id
|
||||
).first()
|
||||
if user is None:
|
||||
raise ValueError
|
||||
result = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.user_id==id
|
||||
models.Page.user_id == id
|
||||
).count()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('users')
|
||||
def users_list(page: int)->list:
|
||||
def users_list(page: int) -> list:
|
||||
"""Показать список пользователей
|
||||
"""
|
||||
users = models.db_session.query(
|
||||
@@ -82,7 +80,7 @@ def users_list(page: int)->list:
|
||||
|
||||
|
||||
@jsonrpc.method('users.count')
|
||||
def users_count()->int:
|
||||
def users_count() -> int:
|
||||
"""Количество список пользователей
|
||||
"""
|
||||
result = models.db_session.query(
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import views
|
||||
from . import views # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import render_template, escape, request, session, redirect
|
||||
from flask import render_template, session, redirect
|
||||
|
||||
from .. import app, lib, models
|
||||
from .. import app
|
||||
|
||||
|
||||
@app.route('/login')
|
||||
def login():
|
||||
"""
|
||||
Логин
|
||||
"""Вход
|
||||
"""
|
||||
pagedata = {}
|
||||
body = render_template('login.html', pagedata=pagedata)
|
||||
@@ -21,6 +18,8 @@ def login():
|
||||
|
||||
@app.route('/logout')
|
||||
def logout():
|
||||
"""Выход
|
||||
"""
|
||||
session.pop('logged_in', None)
|
||||
session.pop('user_id', None)
|
||||
return redirect("/", code=302)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import views
|
||||
from . import views # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import render_template, escape, request, session, redirect
|
||||
from flask import abort, render_template
|
||||
|
||||
from .. import app, lib, models
|
||||
from .. import app, models
|
||||
|
||||
|
||||
@app.route('/note/<int:id>')
|
||||
@@ -15,7 +13,7 @@ def note_id(id):
|
||||
note = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id
|
||||
models.Note.id == id
|
||||
).first()
|
||||
if note is None:
|
||||
abort(404)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import routes
|
||||
from . import routes # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -6,7 +6,6 @@ from flask import abort
|
||||
|
||||
from . import views_user, views_guest
|
||||
from .. import app, lib
|
||||
from ..decorators import login_required
|
||||
|
||||
|
||||
@app.route('/page/<int:id>')
|
||||
|
||||
@@ -2,12 +2,9 @@ __author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru/'
|
||||
|
||||
from flask import (
|
||||
abort,
|
||||
render_template
|
||||
)
|
||||
from flask import abort, render_template
|
||||
|
||||
from .. import app, lib, models
|
||||
from .. import app, models
|
||||
|
||||
|
||||
def pages(page):
|
||||
@@ -25,13 +22,12 @@ def pages(page):
|
||||
|
||||
|
||||
def page_id(id):
|
||||
"""
|
||||
Документ
|
||||
"""Документ
|
||||
"""
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
abort(404)
|
||||
|
||||
@@ -2,18 +2,9 @@ __author__ = 'RemiZOffAlex'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru/'
|
||||
|
||||
import datetime
|
||||
from flask import abort, render_template
|
||||
|
||||
from flask import (
|
||||
abort,
|
||||
render_template,
|
||||
request,
|
||||
redirect,
|
||||
escape,
|
||||
session
|
||||
)
|
||||
|
||||
from .. import app, lib, models
|
||||
from .. import app, models
|
||||
|
||||
|
||||
def pages(page):
|
||||
@@ -33,17 +24,19 @@ def pages(page):
|
||||
|
||||
|
||||
def page_id(id):
|
||||
"""Статья
|
||||
"""
|
||||
Статья
|
||||
"""
|
||||
pagedata = {}
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
abort(404)
|
||||
|
||||
pagedata = {}
|
||||
pagedata['title'] = '{} - {}'.format(page.title, app.config['TITLE'])
|
||||
|
||||
pagedata['page'] = page.as_dict()
|
||||
pagedata['page']['user'] = page.user.as_dict()
|
||||
|
||||
@@ -60,38 +53,14 @@ def page_id(id):
|
||||
return body
|
||||
|
||||
|
||||
def page_id(id):
|
||||
"""Документ"""
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
).first()
|
||||
if page is None:
|
||||
abort(404)
|
||||
|
||||
pagedata = {}
|
||||
pagedata['title'] = '{} - {}'.format(page.title, app.config['TITLE'])
|
||||
|
||||
pagedata['page'] = page.as_dict()
|
||||
pagedata['page']['user'] = page.user.as_dict()
|
||||
pagedata['page']['tags'] = []
|
||||
for tagLink in page.tags:
|
||||
pagedata['page']['tags'].append(tagLink.tag.as_dict())
|
||||
|
||||
body = render_template('user/page.html', pagedata=pagedata)
|
||||
return body
|
||||
|
||||
|
||||
def page_edit(id):
|
||||
"""
|
||||
Редактирование статьи
|
||||
"""Редактирование статьи
|
||||
"""
|
||||
pagedata = {'title': app.config['TITLE']}
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
models.Page.id == id
|
||||
).first()
|
||||
if page is None:
|
||||
abort(404)
|
||||
@@ -102,7 +71,8 @@ def page_edit(id):
|
||||
|
||||
|
||||
def page_add():
|
||||
"""Добавление нового документа"""
|
||||
"""Добавление нового документа
|
||||
"""
|
||||
pagedata = {}
|
||||
pagedata['title'] = 'Новый документ - ' + app.config['TITLE']
|
||||
body = render_template('user/page_add.html', pagedata=pagedata)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import views
|
||||
from . import views # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://remizoffalex.ru'
|
||||
|
||||
from flask import render_template
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import routes
|
||||
from . import routes # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import render_template
|
||||
from flask import abort, render_template
|
||||
|
||||
from .. import app, models
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import render_template
|
||||
from flask import abort, render_template
|
||||
|
||||
from .. import app, models
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from . import views
|
||||
from . import views # noqa F401
|
||||
from .. import app
|
||||
|
||||
|
||||
my_loader = jinja2.ChoiceLoader([
|
||||
app.jinja_loader,
|
||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
||||
jinja2.FileSystemLoader(
|
||||
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||
),
|
||||
])
|
||||
app.jinja_loader = my_loader
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from flask import render_template
|
||||
from flask import abort, render_template
|
||||
|
||||
from .. import app, models
|
||||
|
||||
@@ -17,7 +15,7 @@ def user_id(id):
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==id
|
||||
models.User.id == id
|
||||
).first()
|
||||
if user is None:
|
||||
abort(404)
|
||||
@@ -35,7 +33,7 @@ def user_pages(id):
|
||||
user = models.db_session.query(
|
||||
models.User
|
||||
).filter(
|
||||
models.User.id==id
|
||||
models.User.id == id
|
||||
).first()
|
||||
if user is None:
|
||||
abort(404)
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from myapp import app
|
||||
from flask import Flask, render_template, request, Response
|
||||
|
||||
from . import forms, models
|
||||
from flask import render_template, Response
|
||||
|
||||
|
||||
@app.route('/')
|
||||
@@ -30,7 +26,12 @@ def robots_txt():
|
||||
def error_missing(exception):
|
||||
pagedata = {}
|
||||
error_message = "Не судьба..."
|
||||
return render_template("error.html", error_code=404, error_message=error_message, pagedata=pagedata), 404
|
||||
return render_template(
|
||||
"error.html",
|
||||
error_code=404,
|
||||
error_message=error_message,
|
||||
pagedata=pagedata
|
||||
), 404
|
||||
|
||||
|
||||
# noinspection PyUnusedLocal
|
||||
@@ -38,7 +39,12 @@ def error_missing(exception):
|
||||
def error_unauthorized(exception):
|
||||
pagedata = {}
|
||||
error_message = "У вас нет прав"
|
||||
return render_template("error.html", error_code=403, error_message=error_message, pagedata=pagedata), 403
|
||||
return render_template(
|
||||
"error.html",
|
||||
error_code=403,
|
||||
error_message=error_message,
|
||||
pagedata=pagedata
|
||||
), 403
|
||||
|
||||
|
||||
# noinspection PyUnusedLocal
|
||||
@@ -46,4 +52,9 @@ def error_unauthorized(exception):
|
||||
def error_crash(exception):
|
||||
pagedata = {}
|
||||
error_message = "Вот незадача..."
|
||||
return render_template("error.html", error_code=500, error_message=error_message, pagedata=pagedata), 500
|
||||
return render_template(
|
||||
"error.html",
|
||||
error_code=500,
|
||||
error_message=error_message,
|
||||
pagedata=pagedata
|
||||
), 500
|
||||
|
||||
2
run.py
2
run.py
@@ -2,9 +2,7 @@
|
||||
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from myapp import app as application
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
Reference in New Issue
Block a user