diff --git a/main.py b/main.py index e68b301..1a676a1 100644 --- a/main.py +++ b/main.py @@ -78,10 +78,10 @@ def visit_folder(domain, api, rules, tok): Lapi.append(F) print('got api for ',domain['server']+domain['path'],':', len(Lapi)) - print('loc titles:', '|'.join(sorted([f.title for f in Lloc]))) - print('\n'*2) - print('api titles:', '|'.join(sorted([f.title for f in Lapi]))) - return + #print('loc titles:', '|'.join(sorted([f.title for f in Lloc]))) + #print('loc titles:', '|'.join(sorted([f.title for f in Lloc]))) + #print('\n'*2) + #print('api titles:', '|'.join(sorted([f.title for f in Lapi]))) # supprime les dossiers de l'api Lapi = [f for f in Lapi if tok.conf.is_valid_file(f.name)] @@ -138,12 +138,12 @@ def visit_folder(domain, api, rules, tok): for f, _ in Llink2: Lunref.remove(f) - print('missing (', len(Lmissing), '):',[str(e.api_id)+':'+repr(e) for e in Lmissing]) + print('missing (', len(Lmissing), '):',[str(e.api_id)+':'+repr(e) for e in sorted(Lmissing, key=lambda e:repr(e))]) print('\n'*3) - print('unreferenced:','|'.join(str(f) for f in Lunref)) + print('unreferenced:','|'.join(str(f) for f in sorted(Lunref, key=lambda e:repr(e)))) print('\n'*3) print('unreferenced titles:', '|'.join(sorted([f.title for f in Lunref]))) - ''' + # Put les renommages / déplacements i = 0 for filmApi, filmLoc in Lrelink: @@ -151,7 +151,7 @@ def visit_folder(domain, api, rules, tok): print('['+str(i)+'/'+str(len(Lrelink))+']'+'relink:', filmApi.title) try: api.debug_print = True - api.put_file(id=filmApi.api_id, path='ftp://'+conf.get_domain(domain)+filmLoc.path, name=filmLoc.name) + api.put_file(id=filmApi.api_id, path=domain['server']+filmLoc.path, name=filmLoc.name) api.debug_print = False time.sleep(1) except Exception as e: @@ -166,7 +166,7 @@ def visit_folder(domain, api, rules, tok): print('['+str(i)+'/'+str(len(Llink))+']'+'link:', film.title) try: api.debug_print = True - api.post_file(path='ftp://'+conf.get_domain(domain)+film.path, name=film.name, type='Film', type_id=filmID, **film.additional_info()) + api.post_file(path=domain['server']+film.path, name=film.name, type='Film', type_id=filmID, **film.additional_info()) api.debug_print = False time.sleep(1) except Exception as e: @@ -181,7 +181,7 @@ def visit_folder(domain, api, rules, tok): print('['+str(i)+'/'+str(len(Llink2))+']'+'link2:', film.title) try: api.debug_print = True - api.post_file(path='ftp://'+conf.get_domain(domain)+film.path, name=film.name, type='Film', type_id=filmID, **film.additional_info()) + api.post_file(path=domain['server']+film.path, name=film.name, type='Film', type_id=filmID, **film.additional_info()) api.debug_print = False time.sleep(1) except Exception as e: @@ -190,23 +190,22 @@ def visit_folder(domain, api, rules, tok): raise Exception('end') # Poste tout les films locaux - ''' - """ i = 0 for film in Lunref: i += 1 - print('['+str(i)+'/'+str(len(Lunref))+']'+'post:', film.title, str(film.year)) + print('['+str(i)+'/'+str(len(Lunref))+']'+'post:', film.title, str(film.info.get('YEAR'))) try: posted = False - if film.year is not None: - resp = api.post_film(title=film.title, year=film.year) + if 'YEAR' in film.info: + resp = api.post_film(title=film.title, year=film.info['YEAR']) if "id" in resp: - resp = api.post_file(path='ftp://'+conf.get_domain(domain)+film.path, name=film.name, type='Film', type_id=resp["id"], **film.additional_info()) + print('post: path=',domain['server']+film.path) + resp = api.post_file(path=domain['server']+film.path, name=film.name, type='film', type_id=resp["id"]) posted = True if not posted: resp = api.post_film(title=film.title) if "id" in resp: - resp = api.post_file(path='ftp://'+conf.get_domain(domain)+film.path, name=film.name, type='Film', type_id=resp["id"], **film.additional_info()) + resp = api.post_file(path=domain['server']+film.path, name=film.name, type='film', type_id=resp["id"]) print('response:', resp) time.sleep(1) @@ -214,16 +213,18 @@ def visit_folder(domain, api, rules, tok): print(e) print('film '+film.title+' not posted') raise Exception('end') - """ - ''' - # Marque comme broken les films référencés non présents - # TODO: màj des broken_links - i = 0 + + # Supprime les fichiers qui n'existent plus for film in Lmissing: i += 1 - print('['+str(i)+'/'+len(Lmissing)+']'+'broken:', film) + print('['+str(i)+'/'+str(len(Lmissing))+']'+'missing:', film) + try: + resp = api.delete_file(id=film.api_id) + except Exception as e: + print(e) + print('film '+film.title+' not posted') + raise Exception('end') time.sleep(1) - ''' print('visit finished') def main(): diff --git a/piexel.py b/piexel.py index f0b5c72..af9d8c2 100644 --- a/piexel.py +++ b/piexel.py @@ -49,6 +49,7 @@ class Piexel: if code == 403: # FORBIDDEN raise InvalidToken(data['message']) elif code == 400: + print('error:', response.text) raise ParameterError(data['message']) return data @@ -143,15 +144,39 @@ class Piexel: :param params: paramètres à passer """ fields = self._get_request(['title', 'year'], ['title'], **params) - return self._get_response('films', fields, 'post') + return self._get_response('film', fields, 'post') def post_file(self, **params): """ Ajoute un fichier :param params: paramètres à passer """ - fields = self._get_request(['path', 'name', 'type', 'type_id', 'quality', 'lang', 'subtitles'], ['path', 'name', 'type', 'type_id'], **params) - return self._get_response('files', fields, 'post') + fields = self._get_request(['path', 'name', 'type', 'type_id'], ['path', 'name', 'type', 'type_id'], **params) + return self._get_response('file', fields, 'post') + + def post_file_language(self, file, **params): + """ + Ajoute une langue à un fichier + :param params: paramètres à passer + """ + fields = self._get_request(['value'], ['value'], **params) + return self._get_response('languages/'+str(file)+'/attach', fields, 'post') + + def post_file_subtitle(self, file, **params): + """ + Ajoute une langue à un fichier + :param params: paramètres à passer + """ + fields = self._get_request(['value'], ['value'], **params) + return self._get_response('subtitle-languages/'+str(file)+'/attach', fields, 'post') + + def post_file_qualities(self, file, **params): + """ + Ajoute une langue à un fichier + :param params: paramètres à passer + """ + fields = self._get_request(['value'], ['value'], **params) + return self._get_response('qualities/'+str(file)+'/attach', fields, 'post') def post_subtitle(self, **params): """ @@ -233,54 +258,6 @@ class Piexel: fields = self._get_request(['id', 'treated'], ['id', 'treated'], **params) return self._get_response('broken', fields, 'put') - def delete_film(self, **params): - """ - Supprime un film - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('films', fields, 'delete') - - def delete_file(self, **params): - """ - Supprime un fichier - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('files', fields, 'delete') - - def delete_subtitle(self, **params): - """ - Supprime un sous-titre - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('subtitles', fields, 'delete') - - def delete_serie(self, **params): - """ - Supprime une série - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('series', fields, 'delete') - - def delete_episode(self, **params): - """ - Supprime un épisode d'une série - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('episodes', fields, 'delete') - - def delete_broken(self, **params): - """ - Supprime un lien mort - :param params: paramètres à passer - """ - fields = self._get_request(['id'], ['id'], **params) - return self._get_response('broken', fields, 'delete') - if __name__ == '__main__': piexel = Piexel('http://piexel.rez', 'app', 'token')