mirror of https://github.com/morpheus65535/bazarr
87 lines
3.1 KiB
Python
87 lines
3.1 KiB
Python
# coding=utf-8
|
|
|
|
import datetime
|
|
import pretty
|
|
|
|
from flask import request, jsonify
|
|
from flask_restful import Resource
|
|
|
|
from database import TableMovies, TableBlacklistMovie
|
|
from ..utils import authenticate, postprocessMovie
|
|
from utils import blacklist_log_movie, delete_subtitles, blacklist_delete_all_movie, blacklist_delete_movie
|
|
from helper import path_mappings
|
|
from get_subtitle import movies_download_subtitles
|
|
from event_handler import event_stream
|
|
|
|
|
|
# GET: get blacklist
|
|
# POST: add blacklist
|
|
# DELETE: remove blacklist
|
|
class MoviesBlacklist(Resource):
|
|
@authenticate
|
|
def get(self):
|
|
start = request.args.get('start') or 0
|
|
length = request.args.get('length') or -1
|
|
|
|
data = TableBlacklistMovie.select(TableMovies.title,
|
|
TableMovies.radarrId,
|
|
TableBlacklistMovie.provider,
|
|
TableBlacklistMovie.subs_id,
|
|
TableBlacklistMovie.language,
|
|
TableBlacklistMovie.timestamp)\
|
|
.join(TableMovies, on=(TableBlacklistMovie.radarr_id == TableMovies.radarrId))\
|
|
.order_by(TableBlacklistMovie.timestamp.desc())\
|
|
.limit(length)\
|
|
.offset(start)\
|
|
.dicts()
|
|
data = list(data)
|
|
|
|
for item in data:
|
|
postprocessMovie(item)
|
|
|
|
# Make timestamp pretty
|
|
item["parsed_timestamp"] = datetime.datetime.fromtimestamp(int(item['timestamp'])).strftime('%x %X')
|
|
item.update({'timestamp': pretty.date(datetime.datetime.fromtimestamp(item['timestamp']))})
|
|
|
|
return jsonify(data=data)
|
|
|
|
@authenticate
|
|
def post(self):
|
|
radarr_id = int(request.args.get('radarrid'))
|
|
provider = request.form.get('provider')
|
|
subs_id = request.form.get('subs_id')
|
|
language = request.form.get('language')
|
|
# TODO
|
|
forced = False
|
|
hi = False
|
|
|
|
data = TableMovies.select(TableMovies.path).where(TableMovies.radarrId == radarr_id).dicts().get()
|
|
|
|
media_path = data['path']
|
|
subtitles_path = request.form.get('subtitles_path')
|
|
|
|
blacklist_log_movie(radarr_id=radarr_id,
|
|
provider=provider,
|
|
subs_id=subs_id,
|
|
language=language)
|
|
delete_subtitles(media_type='movie',
|
|
language=language,
|
|
forced=forced,
|
|
hi=hi,
|
|
media_path=path_mappings.path_replace_movie(media_path),
|
|
subtitles_path=subtitles_path,
|
|
radarr_id=radarr_id)
|
|
movies_download_subtitles(radarr_id)
|
|
event_stream(type='movie-history')
|
|
return '', 200
|
|
|
|
@authenticate
|
|
def delete(self):
|
|
if request.args.get("all") == "true":
|
|
blacklist_delete_all_movie()
|
|
else:
|
|
provider = request.form.get('provider')
|
|
subs_id = request.form.get('subs_id')
|
|
blacklist_delete_movie(provider=provider, subs_id=subs_id)
|
|
return '', 200
|