diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-03-04 11:15:04 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-03-04 12:20:54 +0530 |
commit | 55e49cb31744c2fef297f2531fa914bd1b402ccf (patch) | |
tree | f453eab32b932e6ea75f092ac9afd5b34194c951 /server | |
parent | 6a704f60d47e51c32622dbb4689ebf9459bf1063 (diff) |
server/subscene: retire
unreliable server and poor database
Diffstat (limited to 'server')
-rw-r--r-- | server/subscene.lua | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/server/subscene.lua b/server/subscene.lua deleted file mode 100644 index b0692ff..0000000 --- a/server/subscene.lua +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env lua - -local curl = require 'lib.curl' -local util = require 'lib.util' -local attr = require 'lib.attr' - --- [[ languages supported by subscene ]] -- -local languages = { - ['arabic'] = 2, - ['bengali'] = 54, - ['brazillian-portuguese'] = 4, - ['chinese-bg-code'] = 7, - ['czech'] = 9, - ['danish'] = 10, - ['dutch'] = 11, - ['english'] = 13, - ['farsipersian'] = 46, - ['finnish'] = 17, - ['french'] = 18, - ['german'] = 19, - ['greek'] = 21, - ['hebrew'] = 22, - ['indonesian'] = 44, - ['italian'] = 26, - ['japanese'] = 27, - ['korean'] = 28, - ['malay'] = 50, - ['norwegian'] = 30, - ['polish'] = 31, - ['portuguese'] = 32, - ['romanian'] = 33, - ['spanish'] = 38, - ['swedish'] = 39, - ['thai'] = 40, - ['turkish'] = 41, - ['vietnamese'] = 45, - ['albanian'] = 1, - ['armenian'] = 73, - ['azerbaijani'] = 55, - ['basque'] = 74, - ['belarusian'] = 68, - ['big-5-code'] = 3, - ['bosnian'] = 60, - ['bulgarian'] = 5, - ['bulgarian_english'] = 6, - ['burmese'] = 61, - ['cambodian_khmer'] = 79, - ['catalan'] = 49, - ['croatian'] = 8, - ['dutch_english'] = 12, - ['english_german'] = 15, - ['esperanto'] = 47, - ['estonian'] = 16, - ['georgian'] = 62, - ['greenlandic'] = 57, - ['hindi'] = 51, - ['hungarian'] = 23, - ['hungarian_english'] = 24, - ['icelandic'] = 25, - ['kannada'] = 78, - ['kinyarwanda'] = 81, - ['kurdish'] = 52, - ['latvian'] = 29, - ['lithuanian'] = 43, - ['macedonian'] = 48, - ['malayalam'] = 64, - ['manipuri'] = 65, - ['mongolian'] = 72, - ['nepali'] = 80, - ['pashto'] = 67, - ['punjabi'] = 66, - ['russian'] = 34, - ['serbian'] = 35, - ['sinhala'] = 58, - ['slovak'] = 36, - ['slovenian'] = 37, - ['somali'] = 70, - ['sundanese'] = 76, - ['swahili'] = 75, - ['tagalog'] = 53, - ['tamil'] = 59, - ['telugu'] = 63, - ['ukrainian'] = 56, - ['urdu'] = 42, - ['yoruba'] = 71, -} - -local language = 'english' -local domain = 'https://subscene.com' -local headr = {['Cookie'] = 'LanguageFilter=' ..languages[language]} -local tries = 10 - -local title_search = function (key) - local url, args, fetch, hcode, title, rc - - url = domain .. '/subtitles/searchbytitle' - args = { '--data-raw', 'query=' .. key } - - fetch, hcode = curl.get(url, headr, args, tries) - title = fetch:match('href="/subtitles/[^"]*') - - if title then - title = title:gsub('href="', domain) - end - rc = (hcode == 200 and title ~= nil) - - if hcode and not rc then - util.error('subscene: title_search') - end - - return title, rc -end - -local id_fetch = function (title) - local tab, id, name, fetch, hcode, iter, line - - fetch, hcode = curl.get(title, headr, nil, tries) - - tab = {} - iter = fetch:gmatch('[^\n\r]+') - while true do - line = iter() - if not line then - break - end - - id = line:match('/subtitles/[^/]*/[^/]*/%d*') - if id then - iter() - iter() - iter() - iter() - - name = iter():match('%S[^\n\r]*%S') - tab[name] = domain .. id - id = nil - end - end - - if hcode and tab == {} then - util.error('subscene: id_fetch') - end - - return tab -end - -local link_fetch = function (id) - local fetch, hcode, link, rc - - fetch, hcode = curl.get(id, headr, nil, tries) - - rc = (hcode == 200) - if rc then - link = domain .. fetch:match('/subtitles/[%l_-]*%-text/[^"]*') - end - - if hcode and not rc then - util.error('subscene: link_fetch') - end - - return link, rc -end - -local search = function (path, out, name) - local title, id, link, rc - - name = name or util.string_vid_path_to_name(path) - title, rc = title_search(name) - if not rc then - return false - end - - id = attr.fuzzy(name, id_fetch(title)) - if not id then - return false - end - - link, rc = link_fetch(id) - if not rc then - return false - end - - rc = curl.zip_link_to_file(link, headr, out, tries) - if not rc then - return false - end - - return true -end - -return { - title_search = title_search, - id_fetch = id_fetch, - link_fetch = link_fetch, - search = search, -} |