upload from backup
This commit is contained in:
parent
556577bcd5
commit
40583f7bf2
3 changed files with 34 additions and 17 deletions
42
main.py
42
main.py
|
@ -1,9 +1,10 @@
|
|||
from datetime import datetime
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import pyperclip
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
|
||||
|
@ -13,6 +14,7 @@ API_TOKEN = os.environ["API_TOKEN"]
|
|||
EMOJI_FOLDER_ID = "a8qkigygjv"
|
||||
MAX_CHECK_NEW_FILE = 10
|
||||
TIMEZONE = ZoneInfo("Asia/Tokyo")
|
||||
FILES_SRC = Path(os.environ["FILES_SRC"])
|
||||
|
||||
|
||||
def admin_emoji_list(since_id: str | None = None, until_id: str | None = None):
|
||||
|
@ -21,9 +23,9 @@ def admin_emoji_list(since_id: str | None = None, until_id: str | None = None):
|
|||
"limit": 100,
|
||||
}
|
||||
if since_id is not None:
|
||||
request_body["since_id"] = since_id
|
||||
request_body["sinceId"] = since_id
|
||||
if until_id is not None:
|
||||
request_body["until_id"] = until_id
|
||||
request_body["untilId"] = until_id
|
||||
return requests.post(
|
||||
"https://misskey.qwjyh.net/api/admin/emoji/list",
|
||||
headers={
|
||||
|
@ -49,6 +51,23 @@ def drive_files_upload_from_url(url: str):
|
|||
)
|
||||
|
||||
|
||||
def drive_files_create(file_path: str | os.PathLike, name: str):
|
||||
return requests.post(
|
||||
"https://misskey.qwjyh.net/api/drive/files/create",
|
||||
headers={
|
||||
# "Content-Type": "multipart/form-data",
|
||||
"Authorization": f"Bearer {API_TOKEN}",
|
||||
},
|
||||
files={
|
||||
"file": open(file_path, "rb"),
|
||||
},
|
||||
data={
|
||||
"folderId": EMOJI_FOLDER_ID,
|
||||
"name": name,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def check_file_exists(emoji: dict) -> bool:
|
||||
r = requests.get(emoji["url"])
|
||||
return r.status_code == requests.codes.ok
|
||||
|
@ -82,17 +101,24 @@ def admin_emoji_update(emoji_id: str, new_file_id: str):
|
|||
def main():
|
||||
print(f"{API_TOKEN=}")
|
||||
print("Hello from misskey-update-emoji-files!")
|
||||
r = admin_emoji_list()
|
||||
r = admin_emoji_list(until_id="9h9zv01kcr")
|
||||
print(f"out body={r.json()}")
|
||||
r.raise_for_status()
|
||||
for emoji in r.json():
|
||||
file_exists = check_file_exists(emoji)
|
||||
if not file_exists:
|
||||
print(f"{emoji=}")
|
||||
pyperclip.copy(emoji['name'])
|
||||
m = re.search(r"[\da-f\-]+$", emoji["url"])
|
||||
if m is None:
|
||||
raise Exception(f"Failed to get file name from URL: {emoji['url']}")
|
||||
source_file = FILES_SRC / m.group()
|
||||
if not source_file.exists():
|
||||
raise Exception(f"file doesn't exist: {source_file=}")
|
||||
print(f"Uploading file from {source_file}")
|
||||
|
||||
before_upload = datetime.now(tz=TIMEZONE)
|
||||
new_url = input("enter new file url:")
|
||||
r = drive_files_upload_from_url(new_url)
|
||||
r = drive_files_create(source_file, emoji["name"])
|
||||
print(f"{r=}")
|
||||
r.raise_for_status()
|
||||
for i_get_file_iter in range(MAX_CHECK_NEW_FILE):
|
||||
time.sleep(1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue