You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
4.9 KiB
142 lines
4.9 KiB
#pragma once
|
|
#include <curl/curl.h>
|
|
#include <stdint.h>
|
|
#include "conf.h"
|
|
#include "main.h"
|
|
|
|
#define tmdbSite "https://api.themoviedb.org/3/"
|
|
#define tmdbP "/images?api_key="
|
|
#define tmdbP_Opts "&include_image_language=null"
|
|
#define tmdbM "movie/"
|
|
#define tmdbM_ID "https://api.themoviedb.org/3/search/movie?page=1&api_key=" // blah&query=name +opts
|
|
#define tmdbM_Opts "&include_adult=false&language=en-US"
|
|
#define tmdbTV "tv/"
|
|
#define tmdbTV_ID "https://api.themoviedb.org/3/search/tv?page=1&query=" // name&api_key=blah +opts
|
|
#define tmdbTV_Opts "&language=en" //to find the ID based on name
|
|
#define tmdbImg "https://image.tmdb.org/t/p/original"
|
|
#define videoExt "mp4"
|
|
#define subExt1 "srt"
|
|
#define subExt2 "vtt"
|
|
|
|
#define mallocMacro(var, size, caller) do {var=malloc(size); if(var==NULL){fatalError_abort(caller, "could not malloc;\nError: %s;\n", strerror(errno));}}while(0)
|
|
|
|
//Regular text
|
|
#define BLK "\033[0;30m"
|
|
#define RED "\033[0;31m"
|
|
#define GRN "\033[0;32m"
|
|
#define YEL "\033[0;33m"
|
|
#define BLU "\033[0;34m"
|
|
#define MAG "\033[0;35m"
|
|
#define CYN "\033[0;36m"
|
|
#define WHT "\033[0;37m"
|
|
|
|
//Regular bold text
|
|
#define BBLK "\033[1;30m"
|
|
#define BRED "\033[1;31m"
|
|
#define BGRN "\033[1;32m"
|
|
#define BYEL "\033[1;33m"
|
|
#define BBLU "\033[1;34m"
|
|
#define BMAG "\033[1;35m"
|
|
#define BCYN "\033[1;36m"
|
|
#define BWHT "\033[1;37m"
|
|
|
|
//Regular underline text
|
|
#define UBLK "\033[4;30m"
|
|
#define URED "\033[4;31m"
|
|
#define UGRN "\033[4;32m"
|
|
#define UYEL "\033[4;33m"
|
|
#define UBLU "\033[4;34m"
|
|
#define UMAG "\033[4;35m"
|
|
#define UCYN "\033[4;36m"
|
|
#define UWHT "\033[4;37m"
|
|
|
|
//Regular background
|
|
#define BLKB "\033[40m"
|
|
#define REDB "\033[41m"
|
|
#define GRNB "\033[42m"
|
|
#define YELB "\033[43m"
|
|
#define BLUB "\033[44m"
|
|
#define MAGB "\033[45m"
|
|
#define CYNB "\033[46m"
|
|
#define WHTB "\033[47m"
|
|
|
|
//High intensty background
|
|
#define BLKHB "\033[0;100m"
|
|
#define REDHB "\033[0;101m"
|
|
#define GRNHB "\033[0;102m"
|
|
#define YELHB "\033[0;103m"
|
|
#define BLUHB "\033[0;104m"
|
|
#define MAGHB "\033[0;105m"
|
|
#define CYNHB "\033[0;106m"
|
|
#define WHTHB "\033[0;107m"
|
|
|
|
//High intensty text
|
|
#define HBLK "\033[0;90m"
|
|
#define HRED "\033[0;91m"
|
|
#define HGRN "\033[0;92m"
|
|
#define HYEL "\033[0;93m"
|
|
#define HBLU "\033[0;94m"
|
|
#define HMAG "\033[0;95m"
|
|
#define HCYN "\033[0;96m"
|
|
#define HWHT "\033[0;97m"
|
|
|
|
//Bold high intensity text
|
|
#define BHBLK "\033[1;90m"
|
|
#define BHRED "\033[1;91m"
|
|
#define BHGRN "\033[1;92m"
|
|
#define BHYEL "\033[1;93m"
|
|
#define BHBLU "\033[1;94m"
|
|
#define BHMAG "\033[1;95m"
|
|
#define BHCYN "\033[1;96m"
|
|
#define BHWHT "\033[1;97m"
|
|
|
|
//Reset
|
|
#define COLOR_RESET "\033[0m"
|
|
|
|
typedef struct memBlock {
|
|
char *memory;
|
|
size_t size;
|
|
} memBlock;
|
|
|
|
void resetSTDColors();
|
|
void printInfo(const char *caller, bool extraInfo, char *why, ...);
|
|
void printError(const char *caller, bool extraInfo, const char *colorStr, char *why, ...);
|
|
void vprintError(const char *caller, const char *colorStr, char *why, va_list arg);
|
|
void fatalError_abort(const char *caller, char *why, ...);
|
|
void fatalError_exit(const char *caller, char *why, ...);
|
|
int msleep(unsigned long msec);
|
|
size_t curlMemCb (void *contents, size_t size, size_t quantity, void *obj);
|
|
memBlock *initBlock();
|
|
void freeBlock(memBlock *mem);
|
|
size_t curlMemCb (void *contents, size_t size, size_t quantity, void *obj);
|
|
CURLcode getRequest(progConfig *conf, const char *url, void *data, size_t (*func)(void *contents, size_t size, size_t quantity, void *obj));
|
|
size_t dlFileCb(void *ptr, size_t size, size_t nmemb, void *stream);
|
|
CURLcode dlFile(progConfig *conf, const char *url, const char *fileName);
|
|
char **matchReg(const char *str, const char *regStr, int maxMatches);
|
|
int parseStrToInt(const char *str);
|
|
double parseStrToDouble(const char *str);
|
|
void intToStr(char *buff, int num);
|
|
void freeStrArr(char **str);
|
|
char *removeExtension(const char *str);
|
|
char *getExtension(const char *str);
|
|
char *replaceAll(char *str, const char *oldStr, const char *newStr);
|
|
void tryFree(void *ptr);
|
|
char *fileToMem(const char *filePath);
|
|
int freeFileMem(const char *filePath, char *fileStr);
|
|
size_t intSize(size_t num);
|
|
int isSymlink(const char *path);
|
|
char *getRelativePath(const char *fromPath, const char *toPath);
|
|
int checkFolder(const char *filePath, bool runMKDIR);
|
|
char *genImage(char *cmd, char *filePath, char *imgLabel);
|
|
void curlLock(CURL *handle, curl_lock_data data, curl_lock_access laccess, void *userptr);
|
|
void curlUnlock(CURL *handle, curl_lock_data data, void *userptr);
|
|
char *randStr(size_t size);
|
|
char *getSubs(progConfig *conf, char *fileStr, char *filePath);
|
|
int getTmdbID(char *URLStr, progConfig *conf);
|
|
char *getPoster(const char *posterURL, progConfig *conf, int prefImgWidth, double prefImgRatio, char *prefImgLang);
|
|
char *compressImg(const char *convCmd, char *fileToConvert, bool overwrite);
|
|
void printBits(unsigned bits);
|
|
void printBitFlags(unsigned bits);
|
|
int fixMode(progConfig *conf, progFlags flags, const char *toFix, const char *id, const char *poster, const char *newName, bool refreshMode);
|
|
int writeCharToFile(const char *str, const char *fileStr);
|
|
long double getElapsedTime();
|
|
|