diff --git a/build.ipynb b/build.ipynb index a7c468e..23e0c76 100644 --- a/build.ipynb +++ b/build.ipynb @@ -41,6 +41,7 @@ " for cell in nb.get(\"cells\", []):\n", " if cell.get(\"cell_type\") == \"code\":\n", " cell[\"outputs\"] = []\n", + " cell[\"display_name\"] = \".venv\"\n", " cell[\"execution_count\"] = None\n", " p.write_text(json.dumps(nb, ensure_ascii=False, indent=1) + \"\\n\", encoding=\"utf-8\")\n", "\n", @@ -49,7 +50,8 @@ "EOF\n", "\n", "chmod +x .git/hooks/pre-commit\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -97,7 +99,8 @@ " load_env('env')\n", "except:\n", " load_env('env_example')" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -119,7 +122,8 @@ "outputs": [], "source": [ "!kubectl create secret docker-registry regcred --docker-server=$REGISTRY_HOST --docker-username='user' --docker-password=$REGISTRY_PASS --docker-email=\"$(git config --global --get user.email)\"" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -133,7 +137,8 @@ "outputs": [], "source": [ "!docker login $REGISTRY_HOST -u 'user' -p $REGISTRY_PASS" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -155,7 +160,8 @@ "outputs": [], "source": [ "!docker pull $REGISTRY_HOST/python:3.13-alpine" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -169,7 +175,8 @@ "outputs": [], "source": [ "!docker pull $REGISTRY_HOST/python:3.13-slim" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -209,7 +216,8 @@ " f.write('\\n\\n'.join(app))\n", "\n", "build()" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -231,7 +239,8 @@ "outputs": [], "source": [ "!docker build -t $REGISTRY_HOST/avtopost-api:latest ." - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -245,7 +254,8 @@ "outputs": [], "source": [ "!docker image push $REGISTRY_HOST/avtopost-api:latest" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -259,7 +269,8 @@ "outputs": [], "source": [ "!kubectl rollout restart deployments/kultmost-api -n kultmost" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -281,7 +292,8 @@ "outputs": [], "source": [ "!kubectl rollout restart deployments/vk-celery -n kultmost" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -295,7 +307,8 @@ "outputs": [], "source": [ "!kubectl rollout restart deployments/email-celery -n kultmost" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -318,7 +331,8 @@ "source": [ "!docker build -t $REGISTRY_HOST/ssh-tunnel:2 tunnel/\n", "!docker push $REGISTRY_HOST/ssh-tunnel:2" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -332,7 +346,8 @@ "outputs": [], "source": [ "!kubectl create secret generic ssh-id-rsa --from-file=id_rsa=/home/user/.ssh/id_rsa -n kultmost" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -346,7 +361,8 @@ "outputs": [], "source": [ "!kubectl apply -n kultmost -f k8s/stunnel.yaml" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -360,7 +376,8 @@ "outputs": [], "source": [ "!envsubst < k8s/prod.yaml | kubectl apply -n kultmost -f -" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -374,7 +391,8 @@ "outputs": [], "source": [ "!envsubst < k8s/kultmost.yaml | kubectl apply -n kultmost -f -" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -388,7 +406,8 @@ "outputs": [], "source": [ "!envsubst < k8s/mq.yaml | kubectl apply -n kultmost -f -" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -402,7 +421,8 @@ "outputs": [], "source": [ "!envsubst < k8s/gitea.yaml | kubectl apply -n gitea -f -" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -416,7 +436,8 @@ "outputs": [], "source": [ "!echo " - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -441,7 +462,8 @@ "echo \"$INIT_SSH'bash -s' <<'SCRIPT'\"\n", "echo \"kubectl create secret docker-registry regcred --docker-server=$REGISTRY_HOST --docker-username='user' --docker-password=$REGISTRY_PASS --docker-email=\\\"$(git config --global --get user.email)\\\" && clear && history -c && history -w\"\n", "echo \"SCRIPT\"" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -464,7 +486,8 @@ "echo \"clear\"\n", "echo \"history -c\"\n", "echo \"history -w\"" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -486,7 +509,8 @@ "outputs": [], "source": [ "#!rsync -avz ./static kultmost:/var/www/static/" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -500,7 +524,8 @@ "outputs": [], "source": [ "!echo $(git branch --show-current)" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -514,7 +539,8 @@ "outputs": [], "source": [ "!rsync -avh --exclude-from=.rsyncignore --exclude=.venv/ . kultmost:/app/$(git branch --show-current)/" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -552,7 +578,8 @@ "EOF\n", "\n", "ssh kultmost 'systemctl daemon-reload && systemctl enable --now production.service && systemctl status --no-pager -l production.service'\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -582,7 +609,8 @@ "EOF\n", "\n", "ssh kultmost 'systemctl daemon-reload && systemctl enable --now fastapi.service && systemctl status --no-pager -l fastapi.service'\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -620,7 +648,8 @@ "EOF\n", "\n", "ssh kultmost 'systemctl daemon-reload && systemctl enable --now staging.service && systemctl status --no-pager -l staging.service'\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -642,7 +671,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl restart production.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -656,7 +686,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl status production.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -670,7 +701,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl restart fastapi.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -684,7 +716,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl status fastapi.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -722,7 +755,8 @@ "EOF\n", "\n", "ssh kultmost 'systemctl daemon-reload && systemctl enable --now vk-celery.service && systemctl status --no-pager -l vk-celery.service'\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -736,7 +770,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl restart vk-celery.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -750,7 +785,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl status vk-celery.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -780,7 +816,8 @@ "EOF\n", "\n", "ssh kultmost 'systemctl daemon-reload && systemctl enable --now email-celery.service && systemctl status --no-pager -l email-celery.service'\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -794,7 +831,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl restart email-celery.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -808,7 +846,8 @@ "outputs": [], "source": [ "!ssh kultmost 'systemctl status email-celery.service'" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -830,7 +869,8 @@ "outputs": [], "source": [ "# !scp kultmost:/etc/nginx/sites-enabled/default nginx_conf " - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -846,7 +886,8 @@ "!scp nginx_conf kultmost:/tmp/default\n", "!ssh kultmost 'sudo mv /tmp/default /etc/nginx/sites-enabled/default'\n", "!ssh kultmost 'nginx -t'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -860,7 +901,8 @@ "outputs": [], "source": [ "!ssh kultmost 'nginx -s reload'" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -885,7 +927,8 @@ "sudo usermod -a -G microk8s $USER\n", "newgrp microk8s\n", "microk8s status" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -901,7 +944,8 @@ "curl -LO https://cert-manager.io/public-keys/cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg\n", "helm install cert-manager oci://quay.io/jetstack/charts/cert-manager --version v1.20.2 --namespace cert-manager --create-namespace --verify --keyring ./cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg --set crds.enabled=true\n", "microk8s helm install cert-manager oci://quay.io/jetstack/charts/cert-manager --version v1.20.2 --namespace cert-manager --create-namespace --verify --keyring ./cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg --set crds.enabled=true" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -1122,7 +1166,8 @@ "\n", "sss = await element_create(pc, tablet, mob)\n", "sss.innerHTML" - ] + ], + "display_name": ".venv" } ], "metadata": { diff --git a/vk.ipynb b/vk.ipynb index 5bd1394..03582a6 100644 --- a/vk.ipynb +++ b/vk.ipynb @@ -48,7 +48,8 @@ " load_env('env')\n", "except:\n", " load_env('env_example')" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -80,7 +81,8 @@ "from fastapi import APIRouter,Depends\n", "from fastapi.responses import RedirectResponse\n", "from images import insert_logo\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -98,7 +100,8 @@ "outputs": [], "source": [ "celery_app_vk = Celery('vk', broker=f'{redis_uri}1', backend=f'{redis_uri}1', task_track_started=True )\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -108,7 +111,8 @@ "outputs": [], "source": [ "token_manager = TokenManager()\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -130,7 +134,8 @@ "async def oauth_callback(code: str, state: str, device_id: str = None):\n", " token_data = await token_manager.get_token(code=code, state=state, device_id=device_id)\n", " return RedirectResponse(url='/profile/social', status_code=status.HTTP_303_SEE_OTHER)\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -160,7 +165,8 @@ " images[_id] = (\"photo\", (name, background, \"image/jpeg\"))\n", " \n", " return images\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -234,7 +240,8 @@ " await mongo_client[db_name][item.get('col')].update_one({'_id': ObjectId(item.get('_id'))}, update_spec)\n", " return {\"ok\": True}\n", "\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -310,7 +317,8 @@ " await mongo_client[db_name][item.get('col')].update_one({'_id': ObjectId(item.get('_id'))}, update_spec)\n", " return {\"ok\": True}\n", "\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -364,7 +372,8 @@ " )\n", "\n", " return {\"ok\": True}\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -399,7 +408,8 @@ " \n", " except Exception as exc:\n", " raise self.retry(exc=exc)\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -434,7 +444,8 @@ " \n", " except Exception as exc:\n", " raise self.retry(exc=exc)\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -469,7 +480,8 @@ " \n", " except Exception as exc:\n", " raise self.retry(exc=exc)\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -500,7 +512,8 @@ "# timeout=100\n", "# ).json()\n", "# await asyncio.sleep(1)\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -531,7 +544,8 @@ "\n", " with open(f'{filename_without_extension}.py', 'w') as f:\n", " f.write('\\n\\n'.join(app))\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -545,7 +559,8 @@ "outputs": [], "source": [ "!celery -A vk.celery_app_vk worker --loglevel=info" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -559,7 +574,8 @@ "outputs": [], "source": [ "!docker build -t registry.spiritofweb.ru/avtopost-api:latest ." - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -573,7 +589,8 @@ "outputs": [], "source": [ "!sudo docker image push registry.spiritofweb.ru/avtopost-api:latest" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -587,7 +604,8 @@ "outputs": [], "source": [ "!kubectl rollout restart deployments/vk-celery -n kultmost" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -601,7 +619,8 @@ "outputs": [], "source": [ "!echo $REGISTRY_HOST" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -619,7 +638,8 @@ "outputs": [], "source": [ "stop" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -629,7 +649,8 @@ "outputs": [], "source": [ "user_id = '681684390000000000000000'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -640,7 +661,8 @@ "source": [ "await redis_client.delete(f\"access_token:{user_id}\")\n", "await redis_client.delete(f\"tokens:{user_id}\")" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -664,7 +686,8 @@ " },\n", " upsert=True,\n", ")\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -674,7 +697,8 @@ "outputs": [], "source": [ "import token_manager as tm" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -685,7 +709,8 @@ "source": [ "from token_manager import TokenManager\n", "token_manager = TokenManager()" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -697,7 +722,8 @@ "token_manager = TokenManager()\n", "access_token = await token_manager.get_access_token('644fa8bb0000000000000000')\n", "access_token" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -708,7 +734,8 @@ "source": [ "item ={'_id': '6a21559cca3ad8a73b652bcb', 'db': 'competitions', 'col': 'competitions'} \n", "file_ids = ['681684390000000000000000', '6a21559cca3ad8a73b652bc6']" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -719,7 +746,8 @@ "source": [ "docs =[ doc async for doc in mongo_client['social']['social'].find({'user_id':'681684390000000000000000'})]\n", "doc = docs[1]" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -729,7 +757,8 @@ "outputs": [], "source": [ "competition = await competitions_col.find_one({'_id':ObjectId('6a21559cca3ad8a73b652bcb')})" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -739,7 +768,8 @@ "outputs": [], "source": [ "images = await get_images(db_name, file_ids, sign_avatar)" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -781,7 +811,8 @@ " })\n", " res = resp.json()\n", " res.update({'doc': doc})" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -791,7 +822,8 @@ "outputs": [], "source": [ "res" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -858,7 +890,8 @@ " update_spec = {\"$push\": {\"vk\": res}}\n", " await mongo_client[db_name][item.get('col')].update_one({'_id': ObjectId(item.get('_id'))}, update_spec)\n", " return {\"ok\": True}\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -897,7 +930,8 @@ " })\n", " print(resp_wall.json())\n", " \n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -907,7 +941,8 @@ "outputs": [], "source": [ "await competitions_col.find_one({'_id': competition['_id']})" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -922,7 +957,8 @@ " \"$push\": {\"vk\": resp_wall.json()}\n", " },\n", " )" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -937,7 +973,8 @@ " \"v\": \"5.199\",\n", " })\n", "resp.json()['response'][0]" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -947,7 +984,8 @@ "outputs": [], "source": [ "[doc async for doc in mongo_client['social']['social'].find({'user_id':competition['user']['id']})]" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -965,7 +1003,8 @@ "})\n", "\n", "z.json()['response']" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -975,7 +1014,8 @@ "outputs": [], "source": [ "#!pip freeze > requirements.txt" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -995,7 +1035,8 @@ " \"body\": \"group_id=191599084&user_id=392892935&role=moderator&is_contact=0&contact_position=&contact_phone=&contact_email=&permissions=&access_token=vk1.a.-kG07OUZgX5FrxtsQrU5QJh8HaP_suYXkqcg\",\n", " \"method\": \"POST\",\n", "});" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1013,7 +1054,8 @@ "VK_CLIENT_ID = 51852444\n", "SCOPES = 'offline,wall,photos,groups'\n", "redirect_uri = 'https://oauth.vk.ru/blank.html'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1044,7 +1086,8 @@ "url = f'{AUTHORIZE_URL}?responsetype_item=code&client_id={VK_CLIENT_ID}&scope={SCOPES}&redirect_uri={redirect_uri}&state={state}&code_challenge={code_challenge}&code_challenge_method=S256'\n", "\n", "print(f\"\\n\\n{url}\\n\\n\")" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1056,7 +1099,8 @@ "\n", "code='vk2.a.---'\n", "device_id=''" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1067,7 +1111,8 @@ "source": [ "refresh_token = \"vk2.a.-----\"\n", "device_id = \"-\"\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1086,7 +1131,8 @@ " 'state': os.urandom(32).hex(),\n", "})\n", "z.json()" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1097,7 +1143,8 @@ "source": [ "CLIENT_ID = 51852444\n", "OAUTH_URL = 'https://id.vk.com/oauth2/auth'" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1118,7 +1165,8 @@ " 'redirect_uri': 'https://oauth.vk.com/blank.html'\n", "})\n", "r.json()\n" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1139,7 +1187,8 @@ "\n", "z=T()\n", "z.json()" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1150,7 +1199,8 @@ "source": [ "refresh_token=r.json()['refresh_token']\n", "refresh_token" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1169,7 +1219,8 @@ " 'state': os.urandom(32).hex(),\n", "})\n", "z.json()" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1179,7 +1230,8 @@ "outputs": [], "source": [ "print(f'\\n\\n{z.json()['refresh_token']}\\n\\n')" - ] + ], + "display_name": ".venv" }, { "cell_type": "code", @@ -1189,7 +1241,8 @@ "outputs": [], "source": [ "users.search" - ] + ], + "display_name": ".venv" }, { "cell_type": "markdown", @@ -1561,7 +1614,7 @@ ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": ".venv (3.14.6.final.0)", "language": "python", "name": "python3" },