IMDb: Link 'em all!

Adds all kinds of links to IMDb, customizable!

目前为 2020-08-29 提交的版本。查看 最新版本

// ==UserScript==
// @name        IMDb: Link 'em all!
// @description Adds all kinds of links to IMDb, customizable!
// @namespace   https://greasyfork.org/en/users/8981-buzz
// @match       *://*.imdb.com/title/tt*/*
// @connect     *
// @require     https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
// @require     https://unpkg.com/[email protected]/dist/preact.umd.js
// @require     https://unpkg.com/[email protected]/hooks/dist/hooks.umd.js
// @license     GPLv2
// @noframes
// @author      buzz
// @version     2.0.3
// @grant       GM_getValue
// @grant       GM_setValue
// @grant       GM_xmlhttpRequest
// @grant       GM.getValue
// @grant       GM.setValue
// @grant       GM.xmlHttpRequest
// ==/UserScript==

!function(e,t){"use strict";const i="https://github.com/buzz/imdb-link-em-all#readme",o="Link 'em all! v2.0.3",n="config",r={enabled_sites:[],fetch_results:!0,first_run:!0,open_blank:!0,show_category_captions:!0},s={search:"Search",movie_site:"Movie sites",pub_tracker:"Public trackers",priv_tracker:"Private trackers",streaming:"Streaming",filehoster:"Filehosters",subtitles:"Subtitles",tv:"TV"},a=0,l=1,A=2,c=3,h=4,p=5,_={cog:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABkklEQVQoz1VRTUsCYRBe/AHe/Qn+j710EbKLVJcyiAqLLkWJkdkSUdChOpQRRWVRG6RQUqirtq7pupZRUvRxyOIlIU9ed5+mbSFjDjPvzDPPM+8MB+7PVG9ekiXJ25qzXMVZtqu2fP0D7xDrZ7aY/djZAqiEy3qRKY4se8ULYizqENm+vhO2ADf+Z3zhCdlmyqjiDieG2FTBEMeC3wQUA7LxTIVHAlVNfwsVV5gwRgOWRE64QwkFXGAD28hCQYb65wVT4kqTa+nGAzQkMKOM81P8knJJIA2LjblaSONk/ZOICyhjD7P8T886L0ImNoUGHtI5SX8jTYU6olg2Aav8ATHEkaZ8j87taEu1rcY1QUrYVNb4FZLIkNw5+hqeWodmDikKORorhzwOsU9RCqcUDQjWHo4CEeOeyioqNEuemHJI0mvY6P/95q4/gVdEEGoKhkzqPmO4GSH9abj91h6C4RG9j405Qkwlhl7W6fAwl94WbjnWiHPQPmkL1pOIoaveaeu2u5z/rvlrPq9Hapfc/879DQmIXQjyme6GAAAAAElFTkSuQmCC",error:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC",info:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKcSURBVDjLpZPLa9RXHMU/d0ysZEwmMQqZiTaP0agoaKGJUiwIxU0hUjtUQaIuXHSVbRVc+R8ICj5WvrCldJquhVqalIbOohuZxjDVxDSP0RgzyST9zdzvvffrQkh8tBs9yy9fPhw45xhV5X1U8+Yhc3U0LcEdVxdOVq20OA0ooQjhpnfhzuDZTx6++m9edfDFlZGMtXKxI6HJnrZGGtauAWAhcgwVnnB/enkGo/25859l3wIcvpzP2EhuHNpWF9/dWs/UnKW4EOGDkqhbQyqxjsKzMgM/P1ymhlO5C4ezK4DeS/c7RdzQoa3x1PaWenJjJZwT9rQ1gSp/js1jYoZdyfX8M1/mp7uFaTR8mrt29FEMQILr62jQ1I5kA8OF59jIItVA78dJertTiBNs1ZKfLNG+MUHX1oaURtIHEAOw3p/Y197MWHEJEUGCxwfHj8MTZIcnsGKxzrIURYzPLnJgbxvG2hMrKdjItjbV11CYKeG8R7ygIdB3sBMFhkem0RAAQ3Fuka7UZtRHrasOqhYNilOwrkrwnhCU/ON5/q04vHV48ThxOCuoAbxnBQB+am65QnO8FqMxNCjBe14mpHhxBBGCWBLxD3iyWMaYMLUKsO7WYH6Stk1xCAGccmR/Ozs/bKJuXS39R/YgIjgROloSDA39Deit1SZWotsjD8pfp5ONqZ6uTfyWn+T7X0f59t5fqDhUA4ry0fYtjJcWeZQvTBu4/VqRuk9/l9Fy5cbnX+6Od26s58HjWWaflwkusKGxjm1bmhkvLXHvh1+WMbWncgPfZN+qcvex6xnUXkzvSiYP7EvTvH4toDxdqDD4+ygT+cKMMbH+3MCZ7H9uAaDnqytpVX8cDScJlRY0YIwpAjcNcuePgXP/P6Z30QuoP4J7WbYhuQAAAABJRU5ErkJggg==",lock:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ/SURBVDjLbVJBaxNBGH2bpEkTmxi1NTRKTZtoQUHEWz0Igj2I4kG9eVNQhEBO7bEHc+yv8JAiHnr2B4gFqVrQRhObljQolBSTJqZJdnZmfbNr2rU68DEz33zfm/fejGHbNrxjaWlpRCk1J6WcYZxkgPGTsWJZ1mIul/vlrTe8AIVC4Qqbl5PJ5GQsFoPP5wP36PV6qNfr2OIg0L35+fm1fwDYPMLDj+l0OmOaJmq1Gjqdjr4dgUAAiUTCqSsWixvMXV5YWOjqvW+AxOSz8fHxjBAC5XJ5s91up7gO6tDrUqn0QwOTXYZSsoO+wGDB5EwkEkGlUgGb7mSz2apHajWfz9+sVqvFVCrl1P4PYExr5m16vYUjQ+c0O11DtmN/ebD95pG9UpnGzl7Y0Xz30ir8toAtLdiWG0JIvFi76piaGG7g9plVTD/5YLgMCPLg/g0YtMTwhznfApRBfsP6kAYJSKuN57Md5oXTsvHy7aEEfZMutHZfIRAahWGMsHAICMeZVsD+HmTrG8zudyhrH+HJLGyz7wEgRSh9k4nm+nvqPIb4xWuovV5k/2lMXJ9F8+s6ARqIpk6QsIQtTC+AcGTYpBqfvgBfcJTuKMi+xKfdMCZgIp6eRK8TYu2+w2oA4PwDm+5qVK218XmNLN7xxILqKfS7pGqTWekLmuVtV65STs8hA73RqJQQP5+CP3KKACamHj7FlGBDawfH00kEW0MuA8o9AmA6qMrSHqwTIAoM08hAkHkN0ES3UYfotBGdiNFu5cr2AmgJobOPET7nhxEMuU/o40soSjO7iHbbVNgnUen6pY0/AOCTbC7PuV44H0f8Cetg5g9zP5aU7loDcfwGcrKyzYdvwUUAAAAASUVORK5CYII=",tick:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVDjLvZPZLkNhFIV75zjvYm7VGFNCqoZUJ+roKUUpjRuqp61Wq0NKDMelGGqOxBSUIBKXWtWGZxAvobr8lWjChRgSF//dv9be+9trCwAI/vIE/26gXmviW5bqnb8yUK028qZjPfoPWEj4Ku5HBspgAz941IXZeze8N1bottSo8BTZviVWrEh546EO03EXpuJOdG63otJbjBKHkEp/Ml6yNYYzpuezWL4s5VMtT8acCMQcb5XL3eJE8VgBlR7BeMGW9Z4yT9y1CeyucuhdTGDxfftaBO7G4L+zg91UocxVmCiy51NpiP3n2treUPujL8xhOjYOzZYsQWANyRYlU4Y9Br6oHd5bDh0bCpSOixJiWx71YY09J5pM/WEbzFcDmHvwwBu2wnikg+lEj4mwBe5bC5h1OUqcwpdC60dxegRmR06TyjCF9G9z+qM2uCJmuMJmaNZaUrCSIi6X+jJIBBYtW5Cge7cd7sgoHDfDaAvKQGAlRZYc6ltJlMxX03UzlaRlBdQrzSCwksLRbOpHUSb7pcsnxCCwngvM2Rm/ugUCi84fycr4l2t8Bb6iqTxSCgNIAAAAAElFTkSuQmCC",timeout:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALnSURBVDjLpZNbSNNxFMcN9b3opZce7CHqIagegqAgLB+NyMIMFCRBSX3wPm+Z1ZZZlhpT03ReZs7ZvKDpps7LmKa2uTbTnO7inM3L5vxvc3P+1X37zYeVGBF04Mvvxzmcz+/8Duf4AfD7Hx1yDPIKg0dbHonlnYz1r8JsWt6VRUubk1ZE1Unt7e+yLv8VIOGzylS9jG2jegxry1rYbFZQlAVLCyqopDwI38duNr9JyP0jYIjHLNHIymE1G6A2WPFxQI8ywTRK+d/Q0KPB5NwK9OpRdFfFgcOMSTsAEDUUXJF1ptKWVT0kChNaB/XQGG2w2Bww2zahXrShoVeDtmEdZhU94D6956xiPbzgA/TXZXTPk8D3hXXwxTp4zUpRmPuxjC1y98rhASq6NJAqDejjpqAiJ6LBBxioT1w2GabAFc1jhrzs3PHA4XSCXcPBKgHZ3W4IRAOQzFF42aTE1EQzqrLD9D6AuC5hy2pZQmGjEqsuGlb3HrZJIPNxPritHcjIy0fv6DimKBrJ7HEs6sdRk33H5QMIK2O3LGta5HMUWHTQBLIHI2XHs1dF+8kShQrmHUBmoZFY/BkG7TCqM8N+AQSvo3TaqR4U85UYnqdgIp822ml0D41At27Dyi6gamFjIPIM+oMD0R92HE2RZykfoJYZxRlqZmBUOYcCvhpm0jArDdj3iMh9vq0MqvSr2PpUBM+MEE5eMr7En/P0Xg9I3AdUP48/X/8k3DUrq0djjxwv+LNQ6DfgIP1wOGn0R5yCiySjNBTIOAawgmAuvAbRDX+db5Aq86MZHwruYmasDIMTMrA4Y0gvHUFKsXS/bI+8Fb/bRt4J4g/wHBhldk5kbiXjlqOj/D4mxUzoZrjQTdei7/ZRbFY/AEiSO90PViJDnD9EIf5Lh5aJnRt9qSQtrOlt8k1DeWqoyytBzEVqLOa0x5QRhLXMQGhjjkAcGrArDPHP+ue1lYafZJAX9d6yyWn0Jnv9PwH2GPv45gRecwAAAABJRU5ErkJggg==",world:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMtSURBVDjLVZNLa1xlAIafc5szk8xkMkkm5MKY2EpT2qa2MTVCmoLS2gq6EKooimAW7iQb/0I2bgTRIog0oFW7KQpCS7VqrSmmJGlSQtswqWlLLmbGmcmcZM6cy/edz00r6bt8eXh4N6+mlGJnxiZHR4APgSNAFjCBKjClInXm05Gzl3by2mPB2OSoCUwAp1/LHbcziSyO24gbgJAegg2urF8UUsifhZBvfvXK99v/C8YmRy3gt8G2/cMv517E8Wx8ApYcjZiyKbkRSgQkcFn3rzG9Nn1LhOLYt2/8UNUfLZkYaN0zfLRrkLIMCHUNIXTqIoZLjLJvU/ASrFQtnko+z2BH38HAD78DMConHh4FPn5nz6vGgqyxTp16JNj2kpR9C8eD/OoW1VoNO1NCS+d5oW0vV27f2PX11MS8MTR6+JOTXUMHNCPBui5AtdMpk8xsGNQ9ndur20TxCnbPIn5TnmJUwaxIDrTm9Jn7d1tM4EiuqZs5d41iXGefsZsIwYNCgOfVSXconJbLLEWb4CuahU2+6HO8d4DQF/0m0NpgNvLAXaPgu6QadrEZpKhUItJZj/aMS1EewvHnsdUWW/+WKG82kEykCAPRbCqlNE1B4DsocpiW5OJfIVoiyfqSQFdNdGXrpLZGcFZDPKYJg2VQCiGEZkoRlZ3A6W41mknFn2WlaOKFFrG4Tbw9wb2/S3g3miHySLdbNDd2kzYKVGpVpIiqugjF7P3yQ55pyLFWmCSyVokZPqHnEoYmsWQGuyWOGdexNIkRFOnqbGN5bRngjh4G4rMLd6+KnmQW012lWrpOJuNjCh9LU9i6gRkEZHIrpNv/QK8vcijXz5lfLijgS+PmuYV75+fPDXr1Wt9znfsouy5x+2miuoltW1iawBJV0o0/wT8lBvbv5WZ+gaWNlasz43MfmQChH777e37uT78eHDx5+BiLBROjqhDaFmGkQ1KS6+mlr7+XX2evc+nWVB54+4kznfr8pZQIxXkRyhPvDb9vIjtQqgFN12hLO2yUZ/ni8o8SuAa8NTM+t/GE4HGGx4del0J+IGXUH8ko86iuAneAszPjc9/s5P8DuO6ZcsXuRqAAAAAASUVORK5CYII=",x:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIhSURBVDjLlZPrThNRFIWJicmJz6BWiYbIkYDEG0JbBiitDQgm0PuFXqSAtKXtpE2hNuoPTXwSnwtExd6w0pl2OtPlrphKLSXhx07OZM769qy19wwAGLhM1ddC184+d18QMzoq3lfsD3LZ7Y3XbE5DL6Atzuyilc5Ciyd7IHVfgNcDYTQ2tvDr5crn6uLSvX+Av2Lk36FFpSVENDe3OxDZu8apO5rROJDLo30+Nlvj5RnTlVNAKs1aCVFr7b4BPn6Cls21AWgEQlz2+Dl1h7IdA+i97A/geP65WhbmrnZZ0GIJpr6OqZqYAd5/gJpKox4Mg7pD2YoC2b0/54rJQuJZdm6Izcgma4TW1WZ0h+y8BfbyJMwBmSxkjw+VObNanp5h/adwGhaTXF4NWbLj9gEONyCmUZmd10pGgf1/vwcgOT3tUQE0DdicwIod2EmSbwsKE1P8QoDkcHPJ5YESjgBJkYQpIEZ2KEB51Y6y3ojvY+P8XEDN7uKS0w0ltA7QGCWHCxSWWpwyaCeLy0BkA7UXyyg8fIzDoWHeBaDN4tQdSvAVdU1Aok+nsNTipIEVnkywo/FHatVkBoIhnFisOBoZxcGtQd4B0GYJNZsDSiAEadUBCkstPtN3Avs2Msa+Dt9XfxoFSNYF/Bh9gP0bOqHLAm2WUF1YQskwrVFYPWkf3h1iXwbvqGfFPSGW9Eah8HSS9fuZDnS32f71m8KFY7xs/QZyu6TH2+2+FAAAAABJRU5ErkJggg==",spinner:"data:image/gif;base64,R0lGODlhEAAQAPUCAHR2dOTi5Pz6/PTy9MzKzNTW1Ly6vHx+fOTm5LSytHx6fLy+vPT29Nze3ISChIyOjOzq7JSWlJyenKSmpNTS1JSSlJyanNza3Pz+/MTGxOzu7KSipKyqrIyKjISGhLS2tMTCxMzOzKyurP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBQACACwAAAAAEAAQAAAFUaAgjsJ1kWgpXoBypsIGbGV7BlMwMi3AlK/JjCSjoXA60g+m3Eg0TGJLEo1EYtPqFSLZQKLHRRIcUNiODcxo0VscXTszXPMVYC7qnXiVAftFIQAh+QQJBQABACwAAAAADwAQAAAFUWAgjoEGkeioKYqWBouzlKzLZMLoAI5oihlFZhSboQS4l7JkMOSWMJ5h2TRIqc4mA6q6bKEMD+9LIl94QohEcgp/w+MKq+IrewMdNJdyOFBQIQAh+QQJBQAKACwAAAEADwAPAAAFSaAijkpVkWRhFaI5ImQEWKgSAMG71jbvv5TfC3AI+igFCtHIS9qYQtGgSYCMJDMU5LC0EXECgyH8JbSyCWICwS2+zllIlbojhQAAIfkECQUAEAAsAAABABAADwAABVMgJI6QYZDosAyiOTLoAiwoxBzwa7C1UP8/BAJoezwaCIVi+DMCjkpmzfmwSXvGAFEkCPhGMhpJ4PxCHM9WwfYEaFsOGuFJICvNJNnMih8nEjkkIQAh+QQJBQAGACwAAAEAEAAPAAAFV6AhjgZFiUMxkNiFiaYxOICzwsBFlnU+ti8WzbYrylS/oHHA4Qwwj4dyx6k5owKjoargyKY7plPL2hUihWLVO4p0URBZLwtDyxWBLYBdLNTSMmQtBGAGIQAh+QQJBQABACwBAAAADwAQAAAGVsCAUNh4PBrDZNIIeAQwGkxyIOw0OxhLU/oEUIudBqTpHVKV2a1yLYiu3xhQRvD5vIlNuf0Oyt/Nclx/aAZnSRlhQwYABkJtVU2AGl0KX4lsfoMBYm9BACH5BAkFAAQALAEAAAAPABAAAAZVQIJQOOBwBsMkYoEgbAAATpKogAY4UOnn8BEuoNHiBnmAUq3TbZfInLrf08uFEArB6db6/VKd39l/bxgXAm4XEn54iUMSUUMChF4bVItJHR2BRIVuQQAh+QQFBQABACwAAAAAEAAPAAAGWsCAcCgAgQTDZIBxYQRAAABIKWR4FB5mdPGshIYXrKJpRFYAFeI1qwx5k0UkNUlxjOdVTcAexWuwf1EOflEadQ4UeEt6io0DcwwLTmqPbQpccGAZVZKKIiJzQQA7"},u=({className:t,title:i,type:o})=>e.h("img",{alt:o+" icon",className:t,src:_[o],title:i});function g(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var d="Options_options__8dIDU";g(".Options_options__8dIDU{margin-top:10px}.Options_options__8dIDU>label>span{margin-left:10px}");const m=({options:t})=>{const i=t.map(([t,i,o,n])=>e.h("label",{key:t},e.h("input",{checked:o,onInput:e=>n(e.target.checked),type:"checkbox"}),e.h("span",null,i),e.h("br",null)));return e.h("div",{className:d},i)},b=({className:t,site:i,title:o})=>i.icon?e.h("img",{alt:i.title,className:t,src:i.icon,title:o}):null;var f="Sites_searchBar__1cpJl",S="Sites_searchInput__1iJDL",k="Sites_resultCount__2p4vG",C="Sites_siteList__1Y3wR",x="Sites_catList__6txMX",w="Sites_checked__3D9QY",y="Sites_title__1Gu_F",B="Sites_extraIcon__jwLPa",v="Sites_siteIcon__3uzGl";g(".Sites_searchBar__1cpJl{display:flex;flex-direction:row;margin-bottom:1em}.Sites_searchBar__1cpJl .Sites_searchInput__1iJDL{background-color:hsla(0,0%,100%,.9);border-radius:3px;border:1px solid #a6a6a6;box-shadow:inset 0 1px 0 rgba(0,0,0,.07);display:flex;flex-direction:row;height:24px;line-height:normal;outline:0;padding:3px 7px;transition:all .1s linear;width:100%}.Sites_searchBar__1cpJl .Sites_searchInput__1iJDL:focus-within{background-color:#fff;border-color:#e77600;box-shadow:0 0 2px 2px rgba(228,121,17,.25)}.Sites_searchBar__1cpJl .Sites_searchInput__1iJDL>*{background-color:initial;border:none;height:16px}.Sites_searchBar__1cpJl .Sites_searchInput__1iJDL>button{margin:0 0 0 .7em;padding:0}.Sites_searchBar__1cpJl .Sites_searchInput__1iJDL>input{flex-grow:1;outline:none;padding:0 0 0 .5em}.Sites_searchBar__1cpJl .Sites_resultCount__2p4vG{font-weight:700;margin-left:2em;min-width:140px;text-align:right}.Sites_searchBar__1cpJl .Sites_resultCount__2p4vG>span{color:#000}.Sites_siteList__1Y3wR .Sites_catList__6txMX{display:flex;flex-wrap:wrap}.Sites_siteList__1Y3wR .Sites_catList__6txMX h4{width:100%}.Sites_siteList__1Y3wR .Sites_catList__6txMX label{align-items:center;color:#444;display:flex;flex-flow:row;padding:0 6px;transition:color .1s;width:25%}.Sites_siteList__1Y3wR .Sites_catList__6txMX label:hover{color:#222}.Sites_siteList__1Y3wR .Sites_catList__6txMX label.Sites_checked__3D9QY span{color:#000}.Sites_siteList__1Y3wR .Sites_catList__6txMX label .Sites_title__1Gu_F{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.Sites_siteList__1Y3wR .Sites_catList__6txMX label input{margin-right:4px}.Sites_siteList__1Y3wR .Sites_catList__6txMX label .Sites_extraIcon__jwLPa{height:12px;margin-left:4px;width:12px}.Sites_siteList__1Y3wR .Sites_catList__6txMX label .Sites_siteIcon__3uzGl{flex-shrink:0;margin-right:6px}");const Q=({q:t,setQ:i})=>e.h("div",{className:S},e.h("span",null,"🔍"),e.h("input",{onInput:e=>{i(e.target.value.toLowerCase().trim())},placeholder:"Search",value:t}),e.h("button",{style:{display:t.length?"unset":"none"},title:"Clear",type:"button",onClick:()=>i("")},e.h(u,{type:"x"}))),L=({size:t})=>{const i=t+"px",o={display:"inline-block",height:i,width:i};return e.h("div",{className:v,style:o})},I=({checked:t,setEnabled:i,site:o})=>{const n=e.h("input",{checked:t,onInput:e=>i(t=>e.target.checked?[...t,o.id]:t.filter(e=>e!==o.id)),type:"checkbox"}),r=o.icon?e.h(b,{className:v,site:o,title:o.title}):e.h(L,{size:16}),s=e.h("span",{className:y,title:o.title},o.title),a=[o.noAccessMatcher?e.h(u,{className:B,title:"Access restricted",type:"lock"}):null,o.noResultsMatcher?e.h(u,{className:B,title:"Site supports fetching of results",type:"tick"}):null];return e.h("label",{className:t?w:null},n,r," ",s," ",a)},R=({enabled:t,name:i,setEnabled:o,sites:n})=>{const r=n.map(i=>e.h(I,{checked:t.includes(i.id),setEnabled:o,site:i}));return e.h("div",{className:x},e.h("h4",null,i," ",e.h("span",null,"(",n.length,")")),r)},E=({enabledSites:i,setEnabledSites:o,sites:n})=>{const[r,a]=t.useState(""),l=Object.keys(s).map(e=>{const t=n.filter(t=>t.category===e);return r.length?t.filter(e=>e.title.toLowerCase().includes(r)):t}),A=Object.entries(s).map(([t,n],r)=>l[r].length?e.h(R,{enabled:i,key:t,name:n,setEnabled:o,sites:l[r]}):null),c=l.reduce((e,t)=>e+t.length,0);return e.h(e.Fragment,null,e.h("div",{className:f},e.h(Q,{q:r,setQ:a}),e.h("div",{className:k},"Showing ",e.h("span",null,c)," sites.")),e.h("div",{className:C},A))};var U="About_about__3lHx7",N="About_top__3XyCB",G="About_content__1xMTu";g(".About_about__3lHx7{padding:1em 0;position:relative}.About_about__3lHx7 ul>li{margin-bottom:0}.About_about__3lHx7 h2{font-size:20px;margin:.5em 0}.About_about__3lHx7>:last-child{margin-bottom:0}.About_about__3lHx7 .About_top__3XyCB{text-align:center}.About_about__3lHx7 .About_content__1xMTu{width:61.8%;margin:0 auto}");const T=()=>e.h("div",{className:U},e.h("div",{className:N},e.h("h3",null,"🎥 ",o),e.h("p",null,"Adds all kinds of links to IMDb, customizable!")),e.h("div",{className:G},e.h("h2",null,"🔗 Links"),e.h("ul",null,e.h("li",null,e.h("a",{target:"_blank",rel:"noreferrer",href:i},"GitHub")),e.h("li",null,e.h("a",{target:"_blank",rel:"noreferrer",href:"https://greasyfork.org/scripts/17154-imdb-link-em-all"},"Greasy Fork"))),e.h("h2",null,"✨ Contributions"),e.h("p",null,"Add new sites or update existing entries."),e.h("ul",null,e.h("li",null,e.h("a",{target:"_blank",rel:"noreferrer",href:"https://github.com/buzz/imdb-link-em-all/issues/new"},"Open a GitHub issue")," ","or"),e.h("li",null,e.h("a",{target:"_blank",rel:"noreferrer",href:"https://greasyfork.org/en/scripts/17154-imdb-link-em-all/feedback"},"Give feedback")," ","on Greasy Fork.")),e.h("p",null,e.h("em",null,"Thanks to all the contributors!")," 👍"),e.h("h2",null,"⚖ License"),e.h("p",null,"This script is licensed under the terms of the"," ",e.h("a",{target:"_blank",rel:"noreferrer",href:"https://github.com/buzz/imdb-link-em-all/blob/master/LICENSE"},"GPL-2.0 License"),".")));var M="Config_popover__3RK3L",j="Config_inner__2Sbjz",D="Config_top__2kgQ3",W="Config_link__3aqRB",O="Config_active__iBK3y",J="Config_body__2JuhF",H="Config_controls__3hBBQ";g('.Config_popover__3RK3L{background-color:#a5a5a5;border-radius:4px;box-shadow:0 0 2em rgba(0,0,0,.1);color:#333;display:block;font-family:Verdana,Arial,sans-serif;font-size:11px;left:-550px;line-height:1.5rem;padding:10px;position:absolute;top:28px;white-space:nowrap;width:800px;z-index:100}.Config_popover__3RK3L:before{border:8px solid transparent;border-bottom-color:#a5a5a5;content:"";display:block;height:8px;right:234px;position:absolute;top:-16px;width:0}.Config_popover__3RK3L .Config_inner__2Sbjz{display:flex;flex-direction:column;text-shadow:0 1px 0 hsla(0,0%,100%,.2)}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3{display:flex;flex-direction:row}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3 .Config_link__3aqRB{flex-grow:1;text-align:right}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3 .Config_link__3aqRB>a{color:#333;margin-left:12px;margin-right:4px}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3 .Config_link__3aqRB>a:visited{color:#333}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3>button{background-color:rgba(0,0,0,.05);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:2px;border-top-right-radius:2px;border:1px solid rgba(0,0,0,.25);border-bottom:transparent;color:#424242;font-size:12px;margin:0 6px 0 0;outline:none;padding:0 6px;transform:translateY(1px);text-shadow:0 1px 0 hsla(0,0%,100%,.2)}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3>button:hover{background-color:rgba(0,0,0,.1);color:#222}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3>button.Config_active__iBK3y{background-color:#c2c2c2;color:#222}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3>button:last-child{margin-right:0}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_top__2kgQ3>button>img{vertical-align:text-bottom}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_body__2JuhF{background-color:#c2c2c2;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top-right-radius:2px;border:1px solid rgba(0,0,0,.25);padding:12px 10px}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_body__2JuhF>div{overflow:hidden}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_body__2JuhF>div>:first-child{margin-top:0}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_body__2JuhF>div>:last-child{margin-bottom:0}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_controls__3hBBQ{display:flex;flex-direction:row;margin-top:10px}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_controls__3hBBQ>div:first-child{flex-grow:1}.Config_popover__3RK3L .Config_inner__2Sbjz .Config_controls__3hBBQ button{padding-bottom:0;padding-top:0;margin-right:12px}');const V=[["show_category_captions","Show category captions"],["open_blank","Open links in new tab"],["fetch_results","Automatically fetch results"]],Y=({config:n,setConfig:r,setShow:s,show:a,sites:l})=>{const[A,c]=t.useState(n.enabled_sites),h=t.useState(n.show_category_captions),p=t.useState(n.open_blank),_=t.useState(n.fetch_results),[g,d]=h,[b,f]=p,[S,k]=_,C=[h,p,_],x=V.map((e,t)=>[...e,...C[t]]),[w,y]=t.useState(0),B=[{title:"Sites",icon:"world",comp:e.h(E,{enabledSites:A,setEnabledSites:c,sites:l})},{title:"Options",icon:"cog",comp:e.h(m,{options:x})},{title:"About",icon:"info",comp:e.h(T,null)}];return e.h("div",{className:M,style:{display:a?"block":"none"}},e.h("div",{className:j},e.h("div",{className:D},B.map(({title:t,icon:i},o)=>e.h("button",{className:w===o?O:null,type:"button",onClick:()=>y(o)},e.h(u,{title:t,type:i})," ",t)),e.h("div",{className:W},e.h("a",{target:"_blank",rel:"noreferrer",href:i},"🎥 ",o))),e.h("div",{className:J},B.map(({comp:t},i)=>e.h("div",{style:{display:w===i?"block":"none"}},t))),e.h("div",{className:H},e.h("div",null,e.h("button",{className:"btn primary small",onClick:()=>{r({enabled_sites:A,fetch_results:S,open_blank:b,show_category_captions:g}),s(!1)},type:"button"},"OK"),e.h("button",{className:"btn small",onClick:()=>{s(!1),c(n.enabled_sites),k(n.fetch_results),f(n.open_blank),d(n.show_category_captions)},type:"button"},"Cancel")))))};function K(){return(K=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e}).apply(this,arguments)}const Z=(e,{id:t,title:i,year:o},n=!0)=>e.replace(new RegExp("{{IMDB_TITLE}}","g"),n?encodeURIComponent(i):i).replace(new RegExp("{{IMDB_ID}}","g"),t).replace(new RegExp("{{IMDB_YEAR}}","g"),o),P=(e,i)=>{const[o,n]=t.useState(null);return t.useEffect(()=>{let t;if(i.noResultsMatcher){const{url:o}=i,r={timeout:2e4,onload:e=>n(((e,t)=>{if(e.responseHeaders&&e.responseHeaders.includes("Refresh: 0; url="))return c;if(!e.responseText)return p;if(e.responseText.includes("The blog that you are about to view may contain content only suitable for adults."))return c;if(e.responseText.includes("Checking your browser before accessing"))return c;if(t.noAccessMatcher&&(Array.isArray(t.noAccessMatcher)?t.noAccessMatcher:[t.noAccessMatcher]).some(t=>e.responseText.includes(t)))return c;if(Array.isArray(t.noResultsMatcher)){const[i,o,n,r]=t.noResultsMatcher,s=e.responseHeaders.match(/content-type:\s([^\s;]+)/),a=s?s[1]:"text/html";let c;try{c=(new DOMParser).parseFromString(e.responseText,a)}catch(e){return console.error("Could not parse document!"),p}switch(i){case"EL_COUNT":{let e;try{e=c.querySelectorAll(o)}catch(e){return console.error(e),p}if("GT"===n&&e.length>r)return A;if("LT"===n&&e.length<r)return A;break}}return l}return(Array.isArray(t.noResultsMatcher)?t.noResultsMatcher:[t.noResultsMatcher]).some(t=>e.responseText.includes(t))?l:A})(e,i)),onerror:e=>{console.error(`Failed to fetch results from URL '${o}': ${e.statusText}`),n(p)},ontimeout:()=>n(h)};if(Array.isArray(o)){const[t,i]=o;r.method="POST",r.url=t,r.headers={"Content-Type":"application/x-www-form-urlencoded"},r.data=Object.keys(i).map(t=>`${t}=${encodeURIComponent(Z(i[t],e))}`).join("&")}else r.method="GET",r.url=Z(o,e);t=GM.xmlHttpRequest(r),n(a)}return()=>{t&&t.abort&&t.abort()}},[e,i]),o};var F="SiteLink_linkWrapper__2uDyT",z="SiteLink_resultsIcon__3_V-k";g(".SiteLink_linkWrapper__2uDyT{display:inline-block;margin-right:4px}.SiteLink_linkWrapper__2uDyT img{vertical-align:text-bottom}.SiteLink_linkWrapper__2uDyT a{white-space:pre-line}.SiteLink_linkWrapper__2uDyT a>img{height:16px;width:16px;margin-right:4px}.SiteLink_linkWrapper__2uDyT .SiteLink_resultsIcon__3_V-k{margin-left:4px}");const q=({imdbInfo:t,site:i})=>{let o,n;switch(P(t,i)){case a:o="spinner",n="Loading…";break;case l:o="x",n="No Results found!";break;case A:o="tick",n="Results found!";break;case c:o="lock",n="You have to login to this site!";break;case h:o="timeout",n="You have to login to this site!";break;case p:o="error",n="Error fetching results! (See dev console for details)";break;default:return null}return e.h(u,{className:z,title:n,type:o})},X=()=>e.h(e.Fragment,null," ",e.h("span",{className:"ghost"},"|")),$=({config:i,imdbInfo:o,last:n,site:r})=>{const s=i.open_blank?{target:"_blank",rel:"noreferrer"}:{},[a,l]=((e,i,o)=>{const n=t.useRef(),r=Array.isArray(e),s=r?"":Z(e,o,!1);return t.useEffect(()=>{if(r){const[t,r]=e,s=document.createElement("form");s.action=t,s.method="POST",s.style.display="none",s.target=i?"_blank":"_self",Object.keys(r).forEach(e=>{const t=document.createElement("input");t.type="text",t.name=e,t.value=Z(r[e],o,!1),s.appendChild(t)}),document.body.appendChild(s),n.current=s}return()=>{n.current&&n.current.remove()}}),[s,()=>{r&&n.current&&(console.log("POST"),n.current.submit())}]})(r.url,i.open_blank,o);return e.h("span",{className:F},e.h("a",K({href:a,onClick:l},s),e.h(b,{site:r}),e.h("span",null,r.title)),e.h(q,{imdbInfo:o,site:r}),n?null:e.h(X,null))};var ee="LinkList_linkList__rlGOn",te="LinkList_h4__2axTi";g(".LinkList_linkList__rlGOn{line-height:1.6rem}.LinkList_h4__2axTi{margin-top:.5rem}");const ie=({config:t,imdbInfo:i,sites:o})=>Object.entries(s).map(([n,r])=>{const s=o.filter(e=>e.category===n&&t.enabled_sites.includes(e.id));if(!s.length)return null;const a=t.show_category_captions?e.h("h4",{className:te},r):null;return e.h(e.Fragment,null,a,e.h("div",{className:ee},s.map((o,n)=>e.h($,{config:t,imdbInfo:i,last:n===s.length-1,site:o}))))});var oe="App_configWrapper__2KuAE";g(".App_configWrapper__2KuAE{position:absolute;right:20px;top:20px}.App_configWrapper__2KuAE>button{background:transparent;border:none;outline:none;padding:0}.App_configWrapper__2KuAE>button>img{vertical-align:initial}");const ne=()=>{const[e,i]=t.useState();return t.useEffect(()=>{(async()=>JSON.parse(await GM.getValue(n)))().then(e=>i(e)).catch(()=>i(r))},[]),t.useEffect(()=>{e&&(async e=>{GM.setValue(n,JSON.stringify(e))})(e)},[e]),{config:e,setConfig:i}},re=()=>{const[e,i]=t.useState([]);return t.useEffect(()=>{new Promise((e,t)=>GM.xmlHttpRequest({method:"GET",url:"https://raw.githubusercontent.com/buzz/imdb-link-em-all/master/sites.json",nocache:!0,onload({response:i,status:o,statusText:n}){if(200===o)try{e(JSON.parse(i).sort((e,t)=>e.title.localeCompare(t.title)))}catch(e){t(e)}else t(new Error(`Could not load sites: ${o} ${n}`))},onerror({status:e,statusText:i}){t(new Error(`Could not load sites: ${e} ${i}`))}})).then(e=>i(e))},[]),e},se=(()=>{const e=/^\/title\/tt([0-9]{7,8})\/([a-z]*)/.exec(window.location.pathname);if(!e)throw new Error("Could not parse IMDb URL!");const t={id:e[1],layout:["reference","combined"].includes(e[2])?"legacy":"new"},i="legacy"===t.layout?"h3[itemprop=name]":"h1";t.title=document.querySelector(i).innerText.trim();const o=/^(.+)\s+\((\d+)\)/.exec(t.title);return o&&(t.title=o[1].trim(),t.year=parseInt(o[2].trim(),10)),t})(),ae="legacy"===se.layout?".titlereference-section-overview > *:last-child":".title-overview",le=document.querySelector(ae);if(!le)throw new Error("LTA: Could not find target container!");const Ae=document.createElement("div");Ae.style.position="relative",Ae.classList.add("article"),le.appendChild(Ae),e.render(e.h(({imdbInfo:i})=>{const{config:o,setConfig:n}=ne(),r=re(),[s,a]=t.useState(!1);return t.useEffect(()=>{o&&o.first_run&&(a(!0),n(e=>({...e,first_run:!1})))},[o]),o&&r.length?e.h(e.Fragment,null,"legacy"===i.layout?e.h("hr",null):null,e.h("div",{className:oe},e.h("button",{onClick:()=>a(e=>!e),title:"Configure",type:"button"},e.h(u,{type:"cog"})),e.h(Y,{config:o,setConfig:n,setShow:a,sites:r,show:s})),e.h(ie,{config:o,imdbInfo:i,sites:r})):null},{imdbInfo:se}),Ae)}(preact,preactHooks);