💥 server-sync demo
This commit is contained in:
parent
9593c246ab
commit
633542bd7b
1 changed files with 122 additions and 0 deletions
122
Untitled.ipynb
Normal file
122
Untitled.ipynb
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 8,
|
||||||
|
"id": "8492734d-e7ba-4732-b1bf-596956811d9b",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Collecting python-dotenv\n",
|
||||||
|
" Downloading python_dotenv-0.20.0-py3-none-any.whl (17 kB)\n",
|
||||||
|
"Installing collected packages: python-dotenv\n",
|
||||||
|
"Successfully installed python-dotenv-0.20.0\n",
|
||||||
|
"\u001b[33mWARNING: There was an error checking the latest version of pip.\u001b[0m\u001b[33m\n",
|
||||||
|
"\u001b[0mNote: you may need to restart the kernel to use updated packages.\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 22,
|
||||||
|
"id": "2075b6f7-9c53-454b-a6af-818f223f24b4",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"'''\n",
|
||||||
|
"# template .env file\n",
|
||||||
|
"token='ghp_<your gist token>'\n",
|
||||||
|
"gist_id='abc...123'\n",
|
||||||
|
"filename='<filename-in-gist>.txt'\n",
|
||||||
|
"'''\n",
|
||||||
|
"\n",
|
||||||
|
"# %pip install python-dotenv\n",
|
||||||
|
"\n",
|
||||||
|
"from dotenv import load_dotenv\n",
|
||||||
|
"import requests\n",
|
||||||
|
"import json\n",
|
||||||
|
"import os\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"### write current machine ip address to gist file\n",
|
||||||
|
"\n",
|
||||||
|
"# read env vars\n",
|
||||||
|
"# S/O https://stackoverflow.com/a/61029741\n",
|
||||||
|
"load_dotenv()\n",
|
||||||
|
"token = os.getenv('token')\n",
|
||||||
|
"gist_id = os.getenv('gist_id')\n",
|
||||||
|
"filename = os.getenv('filename')\n",
|
||||||
|
"\n",
|
||||||
|
"# fetch external ip address\n",
|
||||||
|
"# S/O https://stackoverflow.com/a/36205547\n",
|
||||||
|
"ip_addr = requests.get('https://api.ipify.org').content.decode('utf8')\n",
|
||||||
|
"\n",
|
||||||
|
"# request gist changes\n",
|
||||||
|
"# S/O https://stackoverflow.com/a/65761251\n",
|
||||||
|
"headers = {'Authorization': f'token {token}'}\n",
|
||||||
|
"request_url = f'https://api.github.com/gists/{gist_id}' \n",
|
||||||
|
"request_data = json.dumps({'files':{filename:{\"content\":ip_addr}}})\n",
|
||||||
|
"\n",
|
||||||
|
"r = requests.patch(\n",
|
||||||
|
" url=request_url,\n",
|
||||||
|
" data=request_data,\n",
|
||||||
|
" headers=headers)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 42,
|
||||||
|
"id": "fcda799c-3feb-4591-9582-f6187994fe36",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"### fetch gist file content\n",
|
||||||
|
"\n",
|
||||||
|
"headers = {'Authorization': f'token {token}'}\n",
|
||||||
|
"request_url = f'https://api.github.com/gists/{gist_id}' \n",
|
||||||
|
"request_data = json.dumps({'files':{filename:{\"content\":ip_addr}}})\n",
|
||||||
|
"r = requests.get(\n",
|
||||||
|
" url=request_url,\n",
|
||||||
|
" data=request_data,\n",
|
||||||
|
" headers=headers)\n",
|
||||||
|
"gist_content = r.json()['files'][filename.strip()]['content']"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "07a9cbfe-8ab1-42d0-9810-cf2b68c97b5d",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"gist_content"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3 (ipykernel)",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.9.13"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue