tytd-2019/source/settings.c

282 lines
6.5 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "settings.h"
char root[35];
//contains file helper functions
extern bool allowredownloadscreen;
extern void Download4(char*,char*,int);
void SetRoot(char* rootdir){
sprintf(root,"%s",rootdir);
TempVal = Temp();
}
int irmode=0;
char* FileNameParse(char* path) {
char* yt = malloc(sizeof(char) * 530);
size_t len = strlen(path);
size_t pos = 0;
for (size_t i = len - 1; path[i] != '/'; i--) {
pos = i;
}
for(size_t i = pos;i<=len;i++){
size_t ind = i - pos;
yt[ind] = path[i];
}
return yt;
}
void DownloadThumbnailsAlt(char* id, int point) {
bool redowsc = allowredownloadscreen;
allowredownloadscreen = false;
char img0[25];
snprintf(img0, 25, "%s_480_360", id);
char img1[25];
snprintf(img1, 25, "%s_120_90", id);
char defaultimg[25];
snprintf(defaultimg, 25, "%s_default", id);
char mqdefault[25];
snprintf(mqdefault, 25, "%s_mqdefault", id);
char hqdefault[25];
snprintf(hqdefault, 25, "%s_hqdefault", id);
char sddefault[25];
snprintf(sddefault, 25, "%s_sddefault", id);
char maxresdefault[29];
snprintf(maxresdefault, 29, "%s_maxresdefault", id);
if (!ThumbnailExists(img0)) { Download4(ThumbnailURLAlt(id, "0"), ThumbnailFileName(img0), point); }
if (!ThumbnailExists(img1)) { Download4(ThumbnailURLAlt(id, "1"), ThumbnailFileName(img1), point); }
if (!ThumbnailExists(defaultimg)) { Download4(ThumbnailURLAlt(id, "default"), ThumbnailFileName(defaultimg), point); }
if (!ThumbnailExists(mqdefault)) { Download4(ThumbnailURLAlt(id, "mqdefault"), ThumbnailFileName(mqdefault), point); }
if (!ThumbnailExists(hqdefault)) { Download4(ThumbnailURLAlt(id, "hqdefault"), ThumbnailFileName(hqdefault), point); }
if (!ThumbnailExists(sddefault)) { Download4(ThumbnailURLAlt(id, "sddefault"), ThumbnailFileName(sddefault), point); }
if (!ThumbnailExists(maxresdefault)) { Download4(ThumbnailURLAlt(id, "maxresdefault"), ThumbnailFileName(maxresdefault), point); }
allowredownloadscreen = redowsc;
}
void DLFhandler(dlf* dl,size_t real){
//max fat32 is 4,294,967,000 just to be safe
// size_t bytesnow = ftell(dl->fp) + real;
//if(bytesnow >= (size_t)4294967000){
// dl->fileid++;
//char nam[1008];
// sprintf(nam,"%s.%i",dl->fnam,dl->fileid);
// freopen(nam,"wb",dl->fp);
// }
}
int UsingIRFeatures(){
return irmode;
}
void SwitchIR(){
if(irmode==0){irmode=1;}else{irmode=0;}
}
FILE* HistoryRead(){
char history[38];
sprintf(history,"%s:/TYTD/history.txt",root);
return fopen(history,"r");
}
FILE* HistoryAppend(){
char history[38];
sprintf(history,"%s:/TYTD/history.txt",root);
return fopen(history,"aw");
}
FILE* PlaylistTXT(char* fil){
char file2[500];
sprintf(file2,"%s:/TYTD/PLTXT/%s",root,fil);
return fopen(file2,"r");
}
void CreatePL(char* fil){
char file2[500];
sprintf(file2,"%s:/TYTD/PLTXT/%s",root,fil);
FILE *f =fopen(file2,"w");
fclose(f);
}
char* CreatePL2(char* fil){
char *file2 = malloc(sizeof(char)*530);
sprintf(file2,"%s:/TYTD/PLTXT/%s",root,fil);
return file2;
}
void WriteFile2PL(char* fil,char* type,char* url,char* filename){
char file2[500];
sprintf(file2,"%s:/TYTD/PLTXT/%s",root,fil);
FILE *f =fopen(file2,"a");
fseek(f,0,SEEK_END);
if(ftell(f) == 0L){
fprintf(f,"%s %s %s",type,url,filename);
}else{
fprintf(f,"\n%s %s %s",type,url,filename);
}
fclose(f);
}
/*
typedef struct disks{
int ntfsusbs;
int ntfssds;
bool hassd;
bool hasusb;
bool hasfatsd;
bool hasfatusb;
}disks;
*/
disks* FileSystemDrivers(){
disks *d = malloc(sizeof(disks));
USBStorage_Initialize();
fatInitDefault();
DIR *sdcarddisk =opendir("sd:/");
DIR *usbdisk = opendir("usb:/");
if(sdcarddisk){
closedir(sdcarddisk);
d->sdfat=TRUE;
}else{
d->sdfat=FALSE;
}
if(usbdisk){
closedir(usbdisk);
d->usbfat=TRUE;
}else{
d->usbfat=FALSE;
}
d->ntfsv=NULL;
d->ntfsc=ntfsMountAll (&d->ntfsv,NTFS_DEFAULT | NTFS_RECOVER);
return d;
}
char* OpenVideoFile(char* filename){
char *yt = malloc(sizeof(char)*530);
snprintf(yt,530,"%s:/TYTD/Videos/%s.mp4",root,filename);
return yt;
}
void OpenPlaylistFile(char* playlist){
char yt[820];
snprintf(yt,820,"%s:/TYTD/Videos/%s",root,playlist);
mkdir(yt,0777);
char yt2[820];
snprintf(yt2,820,"%s:/TYTD/Desc/%s",root,playlist);
mkdir(yt2,0777);
}
char* OpenFile(char* fname2){
char filename[720];
char *yt = malloc(sizeof(char)*820);
char timein[20];
time_t now = time(0);
strftime(timein, sizeof(timein), "%Y%m%d_%H%M%S", localtime(&now));
snprintf(filename,720, fname2,timein);
snprintf(yt,820,"%s:/TYTD/Downloads/%s",root,filename);
return yt;
}
char* OpenPlaylistVideoFile(char* playlist,char* video){
char *yt = malloc(sizeof(char)*820);
snprintf(yt,820,"%s:/TYTD/Videos/%s/%s.mp4",root,playlist,video);
return yt;
}
char* OpenPlaylistDescFile(char* playlist,char* video){
char *yt = malloc(sizeof(char)*820);
snprintf(yt,820,"%s:/TYTD/Desc/%s/%s.txt",root,playlist,video);
return yt;
}
char* OpenDescFile(char* video){
char *yt = malloc(sizeof(char)*820);
snprintf(yt,820,"%s:/TYTD/Desc/%s.txt",root,video);
return yt;
}
char* AppConfig(){
char *yt = malloc(sizeof(char)*820);
snprintf(yt,820,"%s:/TYTD/config.xml",root);
return yt;
}
char* ThumbnailFileName(char* filename){
char *yt = malloc(sizeof(char) *530);
snprintf(yt,530,"%s:/TYTD/Thumbnails/%s.jpg",root,filename);
return yt;
}
int ThumbnailExists(char* filename){
char yt[530];
snprintf(yt,530,"%s:/TYTD/Thumbnails/%s.jpg",root,filename);
struct stat buffer;
return (stat(yt,&buffer)==0);
}
char* ThumbnailURL(char* id){
char *yt = malloc(sizeof(char) *530);
sprintf(yt,"https://img.youtube.com/vi/%s/hqdefault.jpg",id);
return yt;
}
char* ThumbnailURLAlt(char* id,char* res){
char *yt = malloc(sizeof(char) *530);
sprintf(yt,"https://img.youtube.com/vi/%s/%s.jpg",id,res);
return yt;
}
int CreateFolders(){
char tytddir[27];
char tytdtn[49];
char tytddl[48];
char tytdvi[45];
char tytdpl[44];
char tytddes[45];
sprintf(tytddir,"%s:/TYTD",root);
sprintf(tytddl,"%s/Downloads",tytddir);
sprintf(tytdtn,"%s/Thumbnails",tytddir);
sprintf(tytdvi,"%s/Videos",tytddir);
sprintf(tytdpl,"%s/PLTXT",tytddir);
sprintf(tytddes,"%s/Desc",tytddir);
mkdir(tytddir,0777); //Downloader
mkdir(tytdtn,0777); //Thumbnails
mkdir(tytddl,0777); //Downloads
mkdir(tytdvi,0777); //Videos
mkdir(tytddes,0777); //Desc
mkdir(tytdpl,0777); //create dir for playlist text files
return 0;
}
char* Temp(){
char *yt = malloc(sizeof(char)*530);
snprintf(yt,530,"%s:/TYTD/~TMP",root);
return yt;
}
char* PLTXTDIR()
{
char *yt = malloc(sizeof(char)*530);
snprintf(yt,530,"%s:/TYTD/PLTXT/",root);
return yt;
}
void DeleteTemp(){
unlink(Temp());
}