mirror of https://github.com/morpheus65535/bazarr
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
# coding=utf-8
|
|
|
|
from flask import request, jsonify
|
|
from flask_restful import Resource
|
|
from subliminal_patch.core import guessit
|
|
from ..utils import authenticate
|
|
|
|
|
|
class SubtitleNameInfo(Resource):
|
|
@authenticate
|
|
def get(self):
|
|
names = request.args.getlist('filenames[]')
|
|
results = []
|
|
for name in names:
|
|
opts = dict()
|
|
opts['type'] = 'episode'
|
|
guessit_result = guessit(name, options=opts)
|
|
result = {}
|
|
result['filename'] = name
|
|
if 'subtitle_language' in guessit_result:
|
|
result['subtitle_language'] = str(guessit_result['subtitle_language'])
|
|
|
|
result['episode'] = 0
|
|
if 'episode' in guessit_result:
|
|
if isinstance(guessit_result['episode'], list):
|
|
# for multiple episodes file, choose the first episode number
|
|
if len(guessit_result['episode']):
|
|
# make sure that guessit returned a list of more than 0 items
|
|
result['episode'] = int(guessit_result['episode'][0])
|
|
elif isinstance(guessit_result['episode'], (str, int)):
|
|
# if single episode (should be int but just in case we cast it to int)
|
|
result['episode'] = int(guessit_result['episode'])
|
|
|
|
if 'season' in guessit_result:
|
|
result['season'] = int(guessit_result['season'])
|
|
else:
|
|
result['season'] = 0
|
|
|
|
results.append(result)
|
|
|
|
return jsonify(data=results)
|