dev@locazia: add indexator, uploader
This commit is contained in:
parent
7eb012bdcc
commit
308099f8de
|
|
@ -1,6 +1,8 @@
|
||||||
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
from asyncio import sleep
|
from asyncio import sleep
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import asyncio, sys
|
||||||
|
|
||||||
from aiogram import Bot
|
from aiogram import Bot
|
||||||
|
|
||||||
|
|
@ -58,6 +60,13 @@ async def execute_queue(app):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
startup_target = '__main__'
|
||||||
|
try:
|
||||||
|
startup_target = sys.argv[3]
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if startup_target == '__main__':
|
||||||
app.ctx.memory = Memory()
|
app.ctx.memory = Memory()
|
||||||
app.ctx.memory._telegram_bot = Bot(TELEGRAM_API_KEY)
|
app.ctx.memory._telegram_bot = Bot(TELEGRAM_API_KEY)
|
||||||
dp._s_memory = app.ctx.memory
|
dp._s_memory = app.ctx.memory
|
||||||
|
|
@ -68,3 +77,21 @@ if __name__ == '__main__':
|
||||||
app.add_task(dp.start_polling(app.ctx.memory._telegram_bot))
|
app.add_task(dp.start_polling(app.ctx.memory._telegram_bot))
|
||||||
|
|
||||||
app.run(host='0.0.0.0', port=SANIC_PORT)
|
app.run(host='0.0.0.0', port=SANIC_PORT)
|
||||||
|
else:
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
startup_fn = None
|
||||||
|
if startup_target == 'indexator':
|
||||||
|
from app.core.background.indexator_service import main as target_fn
|
||||||
|
elif startup_target == 'uploader':
|
||||||
|
from app.core.background.uploader_service import main as target_fn
|
||||||
|
|
||||||
|
startup_fn = startup_fn or target_fn
|
||||||
|
assert startup_fn
|
||||||
|
|
||||||
|
try:
|
||||||
|
loop.run_until_complete(startup_fn())
|
||||||
|
except BaseException as e:
|
||||||
|
make_log(startup_target[0].upper() + startup_target[1:], f"Error: {e}" + '\n' + str(traceback.format_exc()), level='error')
|
||||||
|
sys.exit(1)
|
||||||
|
finally:
|
||||||
|
loop.close()
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
|
from app.core.models._blockchain.ton.connect import TonConnect, unpack_wallet_info
|
||||||
from sanic import response
|
from sanic import response
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
|
||||||
def valid_royalty_params(royalty_params):
|
def valid_royalty_params(royalty_params):
|
||||||
|
|
@ -15,6 +16,7 @@ def valid_royalty_params(royalty_params):
|
||||||
|
|
||||||
async def s_api_v1_blockchain_send_new_content_message(request):
|
async def s_api_v1_blockchain_send_new_content_message(request):
|
||||||
assert request.json, "No data provided"
|
assert request.json, "No data provided"
|
||||||
|
assert request.ctx.user, "No authorized user provided"
|
||||||
|
|
||||||
for field_key, field_value in {
|
for field_key, field_value in {
|
||||||
'title': lambda x: isinstance(x, str),
|
'title': lambda x: isinstance(x, str),
|
||||||
|
|
@ -30,7 +32,20 @@ async def s_api_v1_blockchain_send_new_content_message(request):
|
||||||
assert field_key in request.json, f"No {field_key} provided"
|
assert field_key in request.json, f"No {field_key} provided"
|
||||||
assert field_value(request.json[field_key]), f"Invalid {field_key} provided"
|
assert field_value(request.json[field_key]), f"Invalid {field_key} provided"
|
||||||
|
|
||||||
assert request.json.get("title"), "No title provided"
|
ton_connect, ton_connection = TonConnect.by_user(request.ctx.db_session, request.ctx.user, callback_fn=())
|
||||||
|
await ton_connect.restore_connection()
|
||||||
|
assert ton_connect.connected, "No connected wallet"
|
||||||
|
|
||||||
|
# await ton_connect._sdk_client.send_transaction({
|
||||||
|
# 'valid_until': int(datetime.now().timestamp()),
|
||||||
|
# 'messages': [
|
||||||
|
# {
|
||||||
|
# 'address':
|
||||||
|
# }
|
||||||
|
# ]
|
||||||
|
# })
|
||||||
|
|
||||||
|
|
||||||
return response.json({"message": "Transaction requested"})
|
return response.json({"message": "Transaction requested"})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
from app.core.logger import make_log
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
make_log("Indexator", "Service started", level="info")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.run_until_complete(main())
|
||||||
|
loop.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
from app.core.logger import make_log
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
make_log("Uploader", "Service started", level="info")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.run_until_complete(main())
|
||||||
|
loop.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -31,3 +31,35 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
maria_db:
|
maria_db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
|
indexator:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
command: python -m app indexator
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
links:
|
||||||
|
- maria_db
|
||||||
|
volumes:
|
||||||
|
- ./logs:/app/logs
|
||||||
|
- ./storedContent:/app/data
|
||||||
|
depends_on:
|
||||||
|
maria_db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
uploader:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
command: python -m app uploader
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
links:
|
||||||
|
- maria_db
|
||||||
|
volumes:
|
||||||
|
- ./logs:/app/logs
|
||||||
|
- ./storedContent:/app/data
|
||||||
|
depends_on:
|
||||||
|
maria_db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue