From 311bb668fee32248a5c80d43421728ea04f5138e Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Thu, 6 Apr 2017 18:40:33 +0200 Subject: [PATCH] Now sendes with Acces-Control-Allow-Origin header. --- findStray.py | 163 ------------------------------------------------- modules/env.py | 6 -- server.js | 3 +- shows.db | Bin 16384 -> 0 bytes 4 files changed, 2 insertions(+), 170 deletions(-) delete mode 100755 findStray.py delete mode 100644 modules/env.py delete mode 100644 shows.db diff --git a/findStray.py b/findStray.py deleted file mode 100755 index bf034d2..0000000 --- a/findStray.py +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# @Author: KevinMidboe -# @Date: 2017-03-04 16:50:09 -# @Last Modified by: KevinMidboe -# @Last Modified time: 2017-03-05 17:20:04 - -import os, sqlite3, re, json -from fuzzywuzzy import process -from langdetect import detect -from pprint import pprint - -showDir = '/media/hdd1/tv/' -dbPath = 'shows.db' -mediaExtensions = ['mkv', 'mp4', 'avi'] -mediaExcluders = ['sample', 'RARBG'] -subExtensions = ['srt'] - -def getFuzzyName(query): - return process.extractOne(query, getShowNames().keys()) - -def removeUploader(mediaItem): - match = re.search('-[a-zA-Z\[\]\-]*.[a-z]{3}', mediaItem) - if match: - uploader, ext = match.group(0).split('.') - return uploader - - return '' - -def getLanguage(path, subtitles): - f = open(path + subtitles, 'r', encoding= 'ISO-8859-15') - language = detect(f.read()) - f.close() - - return language - -# Finds the correct show name -def getShowNames(): - conn = sqlite3.connect(dbPath) - c = conn.cursor() - - c.execute('SELECT show_names, date_added, date_modified FROM shows') - - returnList = {} - for name, added, modified in c.fetchall(): - returnList[name] = [added, modified] - - conn.close() - return returnList - -def XOR(list1, list2): - return set(list1) ^ set(list2) - - -def getByIdentifier(folderItem, identifier): - itemMatch = re.findall(identifier + '[0-9]{1,2}', folderItem) - # TODO Should be more precise than first item in list - item = re.sub(identifier, '', itemMatch[0]) - # TODO Should be checking for errors - return item - -def getItemChildren(folder): - children = os.listdir(showDir + folder) - - media_items = [] - subtitles = [] - trash = [] - for childItem in children: - if childItem[-3:] in mediaExtensions and childItem[:-4] not in mediaExcluders: - media_items.append([childItem, removeUploader(childItem)]) - elif childItem[-3:] in subExtensions: - subtitles.append([childItem, removeUploader(childItem), getLanguage(showDir + folder + '/', childItem)]) - else: - trash.append(childItem) - - return media_items, subtitles, trash - - -def addToDB(episodeInfo): - conn = sqlite3.connect(dbPath) - c = conn.cursor() - - original = episodeInfo['original'] - full_path = episodeInfo['full_path'] - name = episodeInfo['name'] - season = episodeInfo['season'] - episode = episodeInfo['episode'] - media_items = json.dumps(episodeInfo['media_items']) - subtitles = json.dumps(episodeInfo['subtitles']) - trash = json.dumps(episodeInfo['trash']) - tweet_id = episodeInfo['tweet_id'] - reponse_id = episodeInfo['reponse_id'] - verified = episodeInfo['verified'] - moved = episodeInfo['moved'] - - print((media_items)) - try: - c.execute('INSERT INTO stray_episodes VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [original,\ - full_path, name, season, episode, media_items, subtitles, trash, tweet_id, reponse_id, verified, moved]) - - except sqlite3.IntegrityError: - print('Episode already registered') - - conn.commit() - conn.close() - - - - -def getNewFolderContents(): - # TODO Should not do on keys, if empty. - showNames = getShowNames().keys() - # TODO Better way to filter non dotfiles, dirread in filter? - # Should maybe all dirs be checked at start? - folderContents = filter( lambda f: not f.startswith('.'), os.listdir(showDir)) - - return XOR(folderContents, showNames) # OK - - -def checkForSingleEpisodes(folderItem): - # TODO also if empty, should be checked earlier - showName, hit = getFuzzyName(folderItem) - - episodeMatch = re.findall(re.sub(' ', '.', showName)+'\.S[0-9]{1,2}E[0-9]{1,2}\.', folderItem) - if episodeMatch: - return True # OK - - -def getEpisodeInfo(folderItem): - showName, hit = getFuzzyName(folderItem) - season = getByIdentifier(folderItem, 'S') - episode = getByIdentifier(folderItem, 'E') - media_items, subtitles, trash = getItemChildren(folderItem) - - episodeInfo = [] - episodeInfo = {'original': folderItem, - 'full_path': showDir + folderItem, - 'name': showName, - 'season': season, - 'episode': episode, - 'media_items': media_items, - 'subtitles': subtitles, - 'trash': trash, - 'tweet_id': None, - 'reponse_id': None, - 'verified': '0', - 'moved': '0'} - - - addToDB(episodeInfo) - return episodeInfo - - - -def findStray(): - # TODO What if null or tries to pass down error - for item in getNewFolderContents(): - if checkForSingleEpisodes(item): - pprint(getEpisodeInfo(item)) - - -if __name__ == '__main__': - findStray() diff --git a/modules/env.py b/modules/env.py deleted file mode 100644 index d24bffc..0000000 --- a/modules/env.py +++ /dev/null @@ -1,6 +0,0 @@ -show_dir = '/Volumes/media/tv/' -database = 'shows.db' -db_path = '../shows.db' -mediaExt = ['mkv', 'mp4', 'avi'] -subExt = ['srt'] -mediaExcluders = ['sample', 'RARBG'] \ No newline at end of file diff --git a/server.js b/server.js index 46fbc66..874b9b9 100644 --- a/server.js +++ b/server.js @@ -41,7 +41,8 @@ router.get('/seasoned', function(req, res) { } getEpisode(id, function(episode){ - res.json({episode}); // this is where you get the return value + res.setHeader('Access-Control-Allow-Origin', 'https://kevinmidboe.com'); + res.json({episode}); // this is where you get the return value }); }); // more routes for our API will happen here diff --git a/shows.db b/shows.db deleted file mode 100644 index 3a8bf11b5ffeb2670f9f2411003ba50198ca6163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI1Pi$jH9mk*Tmp@M8c(-L6ma^<5w9SSl&wrj1JISWo=lCU?Hg;0S*<}flnfQ(E zA#4LR3yA=4;+9CDyn+xsRapfL8^q{z@965L8wOK7{W z_S&|IHj8U{qj(3sYTlVf)uwHi53pbFyfTd(+#ttaJ%T;v9A6weKfY=Zi{diuTN_^Q z<>sDGedy}(HT2l)wdo%b;+Ls~)(Rz*Ggpl5^%5#W zvrsB`ZWcDW2&N)~i^@xZ2TJs3(Q5SS=wC*EF=~&dBA-Qm7kM*MhzyK;IP&&Ld1Pw% zpToZ&{>kvpFdF*n(65GGA6g9mJ^Y*S{ct|~%;28~-yd`ahXy_xcx&L>1LOUl^uO2d z^e^^(*7ubS0NvVGD3<*#lekEmwGj8cO)T>|yv-^m-wspoEXWUA>q&}9p3f`*yv z>XfdR+$KRe;**L`56Kx_I_uV=dIc=m0a_*4J?n)Y*b{^nIyQBJZc|s#&(gfAgCDTD zg&PN8hH@0Uln4fx&Tul^eB(G#iW;UL8dj^cLeTb>Sdepb>hoQX1zM~7Xrn4-w>YcD zPTJ+MgKI>PY%0Z7&BM%7%d!R8CiUKUyh5FOV%^LoRio=^)g^G8nRTg8VI9cgePCP_ z4E9DsP4`;Cj)h9B>7r}UgSjcOZe-#e;X=TxZm$6`OFhQtBuBMk!vZE|l-7D`$lAEF zZ&S|~GhCYK$u~=D0LiH#aLwG7n0aEF=K|i@MEp@+Ix(aEdy-{d?2>`8NyjHWv;_;A zn6s5{s3tfggbNSln?81YRG`jxF)B4(zVeH;6Pr@UbbYHyeL;iyYwC+&00o5uiU&aA znJ+WRqurvAlOdho!nREW(Pm!gSXMwiP(5+&B}KLOJhv>;%0A-K%QM#(^cj1OlPMBf zbHq?aKT;t39j{hmCi4><=BAAu;v*BgQ1`8^iJ7Lyxym;jf;O8@r4H+eU^kP9Cz1j= zLaWrZ#hlGvt1YNh#R7ZfSv9ZgYrcmJ`v|vS1~wh1g{Xrz>(s^;u@CALi?wy*D?Cr$WJhQX zezNrN~(7F{DU7kD}{t!ZRh7IOHfpuc34)5{TT9Wf>-j?5_c zw(QbIXV;mBjhG-rGomhoCG#2#1cJ5>FjQ3~3ZuSZwLDKWZ_kc!buQPT(5*4FiE?5i zk{;&jT*e-(V?5i(=LNI<^&vH(>sgnveY@rG^^nZ)4>7lMVO|Ypp;Y4KJQM(enCAvN zc5Kf>*`^Dtq9Ej@0bXxpZ7AsTtO+WDw6o>I7FMvk{T;Ww#(_%Gb(vt!Tj*0~z%5@6 zVG08*o}mQ0Y^q!r#vumDqZwWvp>-H0WKeexrl@G9i-q_cHK5Oe5ZFe?_3_6W#%CV^k3@c|1V_e{k+I09atkgANCJ|8Bp?Y$0+N6vAPGnUUq}M? zzZbaJ4!0+-T)fy`Y_CoB_lLu9gr@N$G;J$BXC^WlocB02&9IubuO;G{_6LC*xjq`#ybDBjnyqH5%UjYPu5uPG%r4v$n5M)JXvE}WB+hs z8cm$&?8NTw&IFv2Y28yYt#eAIQAay@N~Uckl4gAVbnJ$)oYdmo;EP5vyQ+Dv-)X&b z#lI0}0$T4r^zZo-yTk9k|F7ch3(D}jKmXy;TR#Yb;;Ns&>fQ(ipK4!jr}HqxMmyi$ z(DZhjL(A>&d1q9O>{>M