From 0ba5047ff9034d1b790b32fd963d637b40f7fc68 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Thu, 11 Aug 2022 13:06:31 +0300 Subject: [PATCH] migration-usable --- README.md | 7 +++++-- migration/{__main__.py => __init__.py} | 17 ++++++++--------- migration/bson2json.py | 2 +- migration/export.py | 4 ++-- migration/extract.py | 2 +- migration/tables/comments.py | 2 +- migration/tables/content_items.py | 2 +- migration/tables/topics.py | 2 +- migration/tables/users.py | 2 +- server.py | 10 ++++++---- 10 files changed, 27 insertions(+), 23 deletions(-) rename migration/{__main__.py => __init__.py} (95%) diff --git a/README.md b/README.md index f74855a3..2e730c35 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,12 @@ on debian/ubuntu apt install redis nginx ``` -Then run nginx, redis and API server +First, you'll need some data +``` +python server.py migrate +``` +Then run nginx, redis and API server ``` redis-server @@ -32,7 +36,6 @@ nginx -s reload pip install -r requirements.txt python server.py -python server.py inbox ``` # How to do an authorized request diff --git a/migration/__main__.py b/migration/__init__.py similarity index 95% rename from migration/__main__.py rename to migration/__init__.py index f20b2ced..670c81eb 100644 --- a/migration/__main__.py +++ b/migration/__init__.py @@ -6,14 +6,14 @@ import sys import os # from export import export_email_subscriptions -from export import export_mdx, export_slug +from .export import export_mdx, export_slug from orm.reaction import Reaction -from tables.users import migrate as migrateUser -from tables.users import migrate_2stage as migrateUser_2stage -from tables.content_items import get_shout_slug, migrate as migrateShout -from tables.topics import migrate as migrateTopic -from tables.comments import migrate as migrateComment -from tables.comments import migrate_2stage as migrateComment_2stage +from .tables.users import migrate as migrateUser +from .tables.users import migrate_2stage as migrateUser_2stage +from .tables.content_items import get_shout_slug, migrate as migrateShout +from .tables.topics import migrate as migrateTopic +from .tables.comments import migrate as migrateComment +from .tables.comments import migrate_2stage as migrateComment_2stage from settings import DB_URL @@ -301,5 +301,4 @@ def migrate(): print('[migration] usage: python migrate.py ') print('[migration] commands: mongodb, bson, all, all mdx, - ') -if __name__ == '__main__': - migrate() +migrate() diff --git a/migration/bson2json.py b/migration/bson2json.py index 5c48c936..a7d51b5d 100644 --- a/migration/bson2json.py +++ b/migration/bson2json.py @@ -2,7 +2,7 @@ import os import bson import json -from utils import DateTimeEncoder +from .utils import DateTimeEncoder def json_tables(): print('[migration] unpack dump/discours/*.bson to migration/data/*.json') diff --git a/migration/export.py b/migration/export.py index 8d47b8ce..47f2c8c3 100644 --- a/migration/export.py +++ b/migration/export.py @@ -3,8 +3,8 @@ from datetime import datetime import json import os import frontmatter -from extract import extract_html, prepare_html_body -from utils import DateTimeEncoder +from .extract import extract_html, prepare_html_body +from .utils import DateTimeEncoder OLD_DATE = '2016-03-05 22:22:00.350000' EXPORT_DEST = '../discoursio-web/data/' diff --git a/migration/extract.py b/migration/extract.py index eaef6a6c..0c09ae0c 100644 --- a/migration/extract.py +++ b/migration/extract.py @@ -1,7 +1,7 @@ import os import re import base64 -from html2text import html2text +from .html2text import html2text TOOLTIP_REGEX = r'(\/\/\/(.+)\/\/\/)' contentDir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'discoursio-web', 'content') diff --git a/migration/tables/comments.py b/migration/tables/comments.py index d4294a1f..cce282d3 100644 --- a/migration/tables/comments.py +++ b/migration/tables/comments.py @@ -3,7 +3,7 @@ from dateutil.parser import parse as date_parse from orm import Reaction, User from orm import reaction from base.orm import local_session -from html2text import html2text +from migration.html2text import html2text from orm.reaction import ReactionKind from orm.shout import Shout diff --git a/migration/tables/content_items.py b/migration/tables/content_items.py index 78d9f7db..0fa23961 100644 --- a/migration/tables/content_items.py +++ b/migration/tables/content_items.py @@ -5,7 +5,7 @@ from services.stat.viewed import ViewedByDay from transliterate import translit from datetime import datetime from base.orm import local_session -from extract import prepare_html_body +from migration.extract import prepare_html_body from orm.community import Community from orm.reaction import Reaction, ReactionKind diff --git a/migration/tables/topics.py b/migration/tables/topics.py index 890034eb..97acb464 100644 --- a/migration/tables/topics.py +++ b/migration/tables/topics.py @@ -1,4 +1,4 @@ -from extract import extract_md, html2text +from migration.extract import extract_md, html2text from base.orm import local_session from orm import Topic, Community diff --git a/migration/tables/users.py b/migration/tables/users.py index 5aa17d9e..d8574c74 100644 --- a/migration/tables/users.py +++ b/migration/tables/users.py @@ -1,5 +1,5 @@ import sqlalchemy -from html2text import html2text +from migration.html2text import html2text from orm import User, UserRating from dateutil.parser import parse from base.orm import local_session diff --git a/server.py b/server.py index 206b0100..6f28f3ef 100644 --- a/server.py +++ b/server.py @@ -4,9 +4,8 @@ from settings import PORT import sys if __name__ == '__main__': - dev_mode = len(sys.argv) > 1 and sys.argv[1] == "dev" - inbox_service = len(sys.argv) > 1 and sys.argv[1] == "inbox" - if dev_mode: + x = sys.argv[1] or "" + if x == "dev": print("DEV MODE") headers = [ ("Access-Control-Allow-Methods", "GET, POST, OPTIONS, HEAD"), @@ -16,5 +15,8 @@ if __name__ == '__main__': ("Access-Control-Allow-Credentials", "true") ] uvicorn.run("main:app", host="localhost", port=8080, headers=headers) #, ssl_keyfile="discours.key", ssl_certfile="discours.crt", reload=True) - else : + elif x == "migrate": + from migration import migrate + migrate() + else: uvicorn.run("main:app", host="0.0.0.0", port=PORT)