Mercurial > codedump
changeset 116:205fc01d5eb4
kmbscreens: replace bat+c with py
committer: GitHub <noreply@github.com>
author | Paper <37962225+mrpapersonic@users.noreply.github.com> |
---|---|
date | Sat, 04 Feb 2023 13:46:06 -0500 |
parents | f10492e8720b |
children | 40a7b6d9bd3b |
files | kmbscreens/kmbscreens.bat kmbscreens/kmbscreens.py kmbscreens/randfile.c |
diffstat | 3 files changed, 46 insertions(+), 53 deletions(-) [+] |
line wrap: on
line diff
--- a/kmbscreens/kmbscreens.bat Mon Jan 23 23:58:22 2023 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -if [%~1] == [--debug] goto skip -@echo off -:skip -SETLOCAL EnableDelayedExpansion -REM for the Kill Me Baby Screens Bot twitter account - -for /F "delims=" %%a in ('randfile.exe') do set "episode=%%a" -for /F "tokens=1 delims=." %%a in ('ffprobe -v quiet -of csv^=p^=0 -show_entries format^=duration "E:\Movies\Anime\Kill Me Baby\%episode%"') do set "length=%%a" - -echo %episode% -echo %length% - -SET /A test=%RANDOM% * !length! / 32768 + 1 - -echo %test% - -ffmpeg.exe -hide_banner -loglevel warning -i "E:\Movies\Anime\Kill Me Baby\%episode%" -y -frames:v 1 -ss %test% screencap.jpg - -for /F "usebackq tokens=1 delims=" %%a in (`twurl -H "upload.twitter.com" -X POST "/1.1/media/upload.json" --file "screencap.jpg" --file-field "media" ^| jq -r .media_id_string `) do set "media_id=%%a" -twurl "/1.1/statuses/update.json" -d "media_ids=%media_id%"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kmbscreens/kmbscreens.py Sat Feb 04 13:46:06 2023 -0500 @@ -0,0 +1,46 @@ +import os +import tweepy +import json +import glob +import subprocess +import random +API_KEY = "API_KEY" +API_KEY_SECRET = "API_KEY_SECRET" +access_tokens = [] +if os.path.exists("./credentials.json"): + with open("credentials.json", "r") as f: + access_tokens = json.load(f) + +oauth1_user_handler = None +try: + oauth1_user_handler = tweepy.OAuth1UserHandler( + API_KEY, API_KEY_SECRET, + access_tokens[0], access_tokens[1], + callback="oob" + ) +except IndexError: + oauth1_user_handler = tweepy.OAuth1UserHandler( + API_KEY, API_KEY_SECRET, + callback="oob" + ) + +if not access_tokens: + print(oauth1_user_handler.get_authorization_url()) + pin = input("Input PIN: ") + access_tokens.extend(oauth1_user_handler.get_access_token(pin)) + with open("credentials.json", "w") as f: + json.dump(access_tokens, f) + +episode = random.choice(list(glob.glob("D:\\Movies\\Anime\\Kill Me Baby\\*.mkv"))) +result = subprocess.run(["ffprobe.exe", "-v", "quiet", "-of", "csv=p=0", + "-show_entries", "format=duration", episode], + capture_output=True, text=True) +test = random.randint(0, round(float(result.stdout.strip()))) +result = subprocess.run(["ffmpeg.exe", "-hide_banner", "-loglevel", + "warning", "-i", episode, "-y", "-frames:v", "1", + "-ss", str(test), "screencap.jpg"]) + +api = tweepy.API(oauth1_user_handler) +with open("screencap.jpg", "rb") as f: + media = api.media_upload(None, file=f) +api.update_status("", media_ids=[media.media_id_string])
--- a/kmbscreens/randfile.c Mon Jan 23 23:58:22 2023 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -#include <stdio.h> -#include <dirent.h> -#include <stdlib.h> -#include <time.h> - -int main(void) { - srand((unsigned)time(NULL)); - DIR *d; - struct dirent *dir; - d = opendir("E:\\Movies\\Anime\\Kill Me Baby"); - int count = 0; - char** ret = NULL; - if (d) { - while ((dir = readdir(d)) != NULL) { - char* dot = strrchr(dir->d_name, '.'); - if (dot && !strcmp(dot, ".mkv")) { - ret = realloc(ret, (count+1)*sizeof(char*)); - if (ret == NULL) return 1; - ret[count] = calloc(strlen(dir->d_name), sizeof(char)); - if (ret[count] == NULL) { free(ret); return 2; } - strncpy(ret[count], dir->d_name, strlen(dir->d_name)*sizeof(char)); - ret[count][strlen(dir->d_name)] = '\0'; - count++; - } - } - closedir(d); - } - printf("%s\n", ret[rand() % count]); - for (int i = 0; i < count; i++) - free(ret[i]); - free(ret); - return 0; -} \ No newline at end of file