// ==UserScript== // @name Ourbits Movie Uploady // @namespace https://pterclub.com/forums.php?action=viewtopic&topicid=3391 // @version 0.1.7 // @description Auto get movie&TV info from douban&imdb for Ourbits // @author scatking // @match https://ourbits.club/upload.php* // @match https://ourbits.club/edit.php* // @require https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @icon https://pterclub.com/favicon.ico // @grant GM.xmlHttpRequest // @grant GM_xmlhttpRequest // @downloadURL https://update.greasyfork.icu/scripts/437311/Ourbits%20Movie%20Uploady.user.js // @updateURL https://update.greasyfork.icu/scripts/437311/Ourbits%20Movie%20Uploady.meta.js // ==/UserScript== async function fill_form(response) { let data = response.response; let poster = data['poster']; function up2imgbb(){ GM.xmlHttpRequest({ method: "GET", url: 'https://api.imgbb.com/1/upload?key=cc322c352c9f362350d05c7823995020&image='+poster, responseType: 'json', onload: function (response) { if (response.response.success === true) {poster = response.response.data.display_url;} const descr =data['format']; const img_descr = `[img]${poster}[/img]` + descr.replace(/\[img].*\[\/img]/,'') ; $('#descr').val(img_descr) } }) } await up2imgbb(); if (data['site'] === 'douban'){ var trans_titles='',directors='',casts=''; if (data['foreign_title'].length == 0){ trans_titles= data['chinese_title']} else { data.trans_title.forEach(function (trans_title) { let reg_title = trans_title.replace(/[a-zA-Z\s]/g,''); if (reg_title.length != 0 && reg_title != trans_title){reg_title = trans_title} trans_titles += reg_title + ' ' }); } data.director.forEach(function (director) { directors = /(.+?)\s/.exec(director['name']).pop() }); var actors = data.cast.slice(0,3); actors.forEach(function (cast) { casts += /(.+?)\s/.exec(cast['name']).pop()+' ' }); let subtitle = trans_titles + ' | ' + "导演:" + directors + ' | ' + '主演:' + casts; subtitle= subtitle.replace(/\s+/g,' '); $('input[name="url"][type="text"]').val(data['imdb_link']); $('input[name="small_descr"]').val(subtitle) } } function triger(url) { function get_info(url) { GM.xmlHttpRequest({ method: "GET", //We call the Steam API to get info on the game url: "https://autofill.scatowl.workers.dev/?url="+url, responseType: "json", onload: fill_form }); } if (url.indexOf("douban.com/") !== -1){ get_info(url)} else { let id = /\/(tt\d+)/.exec(url).pop(); GM.xmlHttpRequest({ method: "GET", //We call the Steam API to get info on the game url: "https://autofill.scatowl.workers.dev/?search="+id, responseType: "json", onload: function (response) { try { url = response.response.data[0].link; $('input[name="douban"]').val(url); } catch (TypeError) {console.log('no douban page')} finally {get_info(url);} } }); } } function writeInto(){ const subtitle = $('input[name="small_descr"]'); const cstext = subtitle.val() + "[国语中字]"; subtitle.val(cstext); } function replaceimg(){ let descr = $('#descr').val(); let poster = /\[img](.*)\[\/img]/.exec(descr)[1]; console.log(poster); GM.xmlHttpRequest({ method: "GET", url: 'https://api.imgbb.com/1/upload?key=cc322c352c9f362350d05c7823995020&image='+poster, responseType: 'json', onload: function (response) { if (response.response.success === true) {poster = response.response.data.display_url;} console.log('OK'); const img_descr = descr.replace(/\[img].*\[\/img]/,`[img]${poster}[/img]`) ; $('#descr').val(img_descr) } }) } (function() { 'use strict'; let name = $('input[name="name"][type="text"]'); let imdb_url = $('input[name="url"][type="text"]'); //let douban_url = $('input[name="douban"]'); let subtitle = $('input[name="small_descr"]'); name.after('Imgbb it'); imdb_url.after('Auto Fill'); douban_url.after('Auto Fill'); subtitle.after('[国语中字]'); $('#imgbb').click(function () {replaceimg()}); $('#fill_cs').click(function () {writeInto()}); $('#fill_imdb').click(function () {triger(imdb_url.val())}); $('#fill_douban').click(function () {triger(douban_url.val())}) })();