|
// ==UserScript== |
|
// @name Movielens<->HBO Now links |
|
// @namespace https://github.com/johan |
|
// @version 1.0 |
|
// @description Link movies directly from Movielens and HBO now back and forth |
|
// @match https://movielens.org/movies/* |
|
// @match https://www.hbonow.com/*/PROD* |
|
// ==/UserScript== |
|
|
|
var mlid_to_hbo_rating = |
|
{ 87: ['PROD561730', 2.35] |
|
, 95: ['PROD562079', 3.01] |
|
, 100: ['PROD556636', 3.78] |
|
, 144: ['PROD561971', 3.66] |
|
, 357: ['PROD556732', 4.97] |
|
, 532: ['PROD554872', 2.47] |
|
, 590: ['PROD19808', 4.05] |
|
, 600: ['PROD36669', 2.82] |
|
, 605: ['PROD571246', 3.87] |
|
, 754: ['PROD559796', 2.85] |
|
, 838: ['PROD605829', 4.37] |
|
, 1042: ['PROD566556', 3.22] |
|
, 1079: ['PROD16032', 4.08] |
|
, 1278: ['PROD1303', 3.30] |
|
, 1439: ['PROD566097', 2.31] |
|
, 1495: ['PROD575007', .92] |
|
, 1517: ['PROD574459', 2.77] |
|
, 1518: ['PROD571250', 3.14] |
|
, 1583: ['PROD573400', 2.79] |
|
, 1584: ['PROD560614', 4.55] |
|
, 1602: ['PROD571270', 2.37] |
|
, 1681: ['PROD573903', 1.61] |
|
, 1682: ['PROD557889', 4.34] |
|
, 1707: ['PROD569513', 1.96] |
|
, 1750: ['PROD582129', 2.52] |
|
, 1858: ['PROD572085', 3.15] |
|
, 2067: ['PROD2582', 4.37] |
|
, 2071: ['PROD35973', 3.91] |
|
, 2321: ['PROD578007', 3.85] |
|
, 2324: ['PROD585464', 4.38] |
|
, 2353: ['PROD579795', 4.05] |
|
, 2416: ['PROD15421', 2.75] |
|
, 2468: ['PROD9751', 3.99] |
|
, 2498: ['PROD557120', 2.78] |
|
, 2702: ['PROD584791', 2.64] |
|
, 2712: ['PROD783837', 4.00] |
|
, 2720: ['PROD556746', 1.91] |
|
, 2723: ['PROD585125', 2.84] |
|
, 2796: ['PROD15883', 3.04] |
|
, 2802: ['PROD13270', 3.73] |
|
, 2919: ['PROD5528', 4.18] |
|
, 2922: ['PROD21828', 3.49] |
|
, 2953: ['PROD551712', 2.08] |
|
, 2978: ['PROD18927', 3.69] |
|
, 3064: ['PROD577220', 2.31] |
|
, 3157: ['PROD585007', 2.66] |
|
, 3186: ['PROD557316', 4.05] |
|
, 3299: ['PROD584821', 3.23] |
|
, 3509: ['PROD586524', 3.70] |
|
, 3567: ['PROD592420', 3.76] |
|
, 3647: ['PROD585643', 3.27] |
|
, 3691: ['PROD6148', 2.66] |
|
, 3754: ['PROD586010', 2.31] |
|
, 3793: ['PROD557322', 3.29] |
|
, 3821: ['PROD579797', 1.80] |
|
, 3852: ['PROD592921', 3.77] |
|
, 3911: ['PROD592287', 3.10] |
|
, 3914: ['PROD594086', 3.64] |
|
, 3948: ['PROD561197', 3.54] |
|
, 3968: ['PROD591921', 3.79] |
|
, 3969: ['PROD591702', 3.96] |
|
, 3977: ['PROD590225', 3.15] |
|
, 4003: ['PROD11570', 3.44] |
|
, 4009: ['PROD16393', 3.80] |
|
, 4027: ['PROD590301', 3.44] |
|
, 4040: ['PROD37493', 2.78] |
|
, 4041: ['PROD4869', 3.83] |
|
, 4069: ['PROD590634', 3.30] |
|
, 4231: ['PROD594264', 3.75] |
|
, 4308: ['PROD590219', 4.33] |
|
, 4370: ['PROD558065', 3.52] |
|
, 4378: ['PROD590636', 3.61] |
|
, 4653: ['PROD18140', 3.12] |
|
, 4690: ['PROD12272', 3.44] |
|
, 4699: ['PROD590097', 3.61] |
|
, 4848: ['PROD601212', 3.83] |
|
, 4890: ['PROD597392', 2.89] |
|
, 5128: ['PROD593087', 3.15] |
|
, 5299: ['PROD591244', 3.92] |
|
, 5556: ['PROD603574', 2.33] |
|
, 5787: ['PROD598713', 3.10] |
|
, 6005: ['PROD608240', 2.96] |
|
, 6053: ['PROD8534', 3.61] |
|
, 6143: ['PROD5262', 3.29] |
|
, 6187: ['PROD602091', 4.21] |
|
, 6294: ['PROD604610', 2.80] |
|
, 6298: ['PROD607732', 3.03] |
|
, 6493: ['PROD605829', 3.52] |
|
, 6619: ['PROD605760', 3.51] |
|
, 6624: ['PROD605594', 2.87] |
|
, 6811: ['PROD556450', 2.81] |
|
, 6871: ['PROD607737', 3.27] |
|
, 6952: ['PROD609688', 3.28] |
|
, 6958: ['PROD606291', 2.52] |
|
, 7257: ['PROD608570', 2.71] |
|
, 7324: ['PROD606592', 3.42] |
|
, 7360: ['PROD611948', 2.62] |
|
, 7369: ['PROD610148', 1.83] |
|
, 7481: ['PROD6498', 3.45] |
|
, 7618: ['PROD12219', 4.11] |
|
, 8666: ['PROD611275', 2.59] |
|
, 8813: ['PROD615637', 3.56] |
|
, 8815: ['PROD603066', 1.95] |
|
, 8859: ['PROD602148', .81] |
|
, 26375: ['PROD1046', 3.27] |
|
, 26544: ['PROD6757', 3.31] |
|
, 26940: ['PROD559361', 3.24] |
|
, 26965: ['PROD578135', 3.88] |
|
, 27067: ['PROD560316', 3.77] |
|
, 27249: ['PROD597839', 3.77] |
|
, 27378: ['PROD597669', 3.60] |
|
, 27391: ['PROD595483', 3.67] |
|
, 27410: ['PROD595000', 4.32] |
|
, 27871: ['PROD605831', 4.25] |
|
, 33743: ['PROD578282', 3.54] |
|
, 34162: ['PROD615635', 3.15] |
|
, 34405: ['PROD615884', 3.77] |
|
, 35015: ['PROD609171', 3.92] |
|
, 36799: ['PROD606053', 4.28] |
|
, 37733: ['PROD617747', 3.71] |
|
, 39292: ['PROD621174', 4.17] |
|
, 40815: ['PROD613215', 3.13] |
|
, 41025: ['PROD613219', 3.85] |
|
, 43419: ['PROD619096', 3.41] |
|
, 43677: ['PROD558190', 3.72] |
|
, 44022: ['PROD618355', 3.69] |
|
, 44949: ['PROD623949', 2.83] |
|
, 45499: ['PROD616178', 3.23] |
|
, 45501: ['PROD620910', 3.33] |
|
, 45668: ['PROD620816', 4.23] |
|
, 45720: ['PROD625269', 4.17] |
|
, 45726: ['PROD623907', 3.08] |
|
, 45969: ['PROD35776', 3.08] |
|
, 46335: ['PROD623007', 2.69] |
|
, 46337: ['PROD622051', 3.04] |
|
, 46367: ['PROD552680', 3.73] |
|
, 46530: ['PROD551134', 2.87] |
|
, 47044: ['PROD621066', 3.55] |
|
, 47122: ['PROD624057', 3.39] |
|
, 47516: ['PROD621929', 2.16] |
|
, 47518: ['PROD623006', 3.04] |
|
, 47997: ['PROD615748', 2.76] |
|
, 48159: ['PROD624888', 2.95] |
|
, 48698: ['PROD634161', 3.78] |
|
, 48879: ['PROD631637', 4.02] |
|
, 49110: ['PROD38195', 2.74] |
|
, 49220: ['PROD624058', 3.27] |
|
, 49649: ['PROD622074', 2.79] |
|
, 50798: ['PROD633499', 2.05] |
|
, 50802: ['PROD631508', 3.28] |
|
, 50806: ['PROD624049', 1.86] |
|
, 51088: ['PROD632176', 2.13] |
|
, 51357: ['PROD556539', 3.97] |
|
, 51694: ['PROD623589', 3.73] |
|
, 52285: ['PROD624926', 2.84] |
|
, 52668: ['PROD618610', 3.79] |
|
, 52724: ['PROD619181', 3.06] |
|
, 55052: ['PROD632639', 4.38] |
|
, 55286: ['PROD630760', 4.10] |
|
, 56744: ['PROD626015', 3.97] |
|
, 56837: ['PROD621048', 3.63] |
|
, 59810: ['PROD629890', 3.91] |
|
, 61285: ['PROD571471', 4.12] |
|
, 61586: ['PROD622076', 3.87] |
|
, 66068: ['PROD551198', 4.10] |
|
, 66385: ['PROD628650', 3.36] |
|
, 70824: ['PROD764438', 2.10] |
|
, 74324: ['PROD604071', 4.47] |
|
, 77837: ['PROD653625', 4.22] |
|
, 78759: ['PROD706589', 3.62] |
|
, 79572: ['PROD785759', 3.41] |
|
, 80969: ['PROD698850', 4.05] |
|
, 84663: ['PROD621574', 3.88] |
|
, 84663: ['PROD622648', 3.88] |
|
, 85213: ['PROD721674', 3.72] |
|
, 87469: ['PROD726575', 3.56] |
|
, 87608: ['PROD752991', 3.55] |
|
, 87660: ['PROD729555', 3.92] |
|
, 89367: ['PROD752985', 3.66] |
|
, 91325: ['PROD735612', 4.45] |
|
, 91873: ['PROD730180', 2.92] |
|
, 91886: ['PROD719494', 3.41] |
|
, 92094: ['PROD639189', 4.03] |
|
, 93498: ['PROD737791', 4.12] |
|
, 94837: ['PROD633486', 3.13] |
|
, 98836: ['PROD742979', 3.50] |
|
, 101973: ['PROD708309', 4.13] |
|
, 102819: ['PROD762820', 3.26] |
|
, 102978: ['PROD747622', 3.84] |
|
, 103255: ['PROD613591', 3.88] |
|
, 103609: ['PROD19861', 3.54] |
|
, 103808: ['PROD764117', 3.41] |
|
, 103819: ['PROD768057', 3.43] |
|
, 104074: ['PROD743944', 2.64] |
|
, 105211: ['PROD764917', 4.09] |
|
, 105404: ['PROD747529', 3.79] |
|
, 105620: ['PROD722593', 3.14] |
|
, 105755: ['PROD757357', 2.99] |
|
, 106002: ['PROD745117', 3.26] |
|
, 106441: ['PROD757197', 3.71] |
|
, 106443: ['PROD759299', 3.53] |
|
, 106489: ['PROD739838', 2.75] |
|
, 106910: ['PROD718305', 3.02] |
|
, 107069: ['PROD654985', 3.18] |
|
, 107380: ['PROD760988', 3.87] |
|
, 107445: ['PROD100', 3.95] |
|
, 108156: ['PROD621479', 2.82] |
|
, 108932: ['PROD715089', 3.15] |
|
, 109191: ['PROD766798', 3.18] |
|
, 109330: ['PROD607239', 4.01] |
|
, 109483: ['PROD770778', 2.78] |
|
, 109864: ['PROD771199', 3.27] |
|
, 110322: ['PROD764858', 3.25] |
|
, 110453: ['PROD764138', 3.69] |
|
, 110655: ['PROD761858', 3.23] |
|
, 110730: ['PROD761141', 3.63] |
|
, 110771: ['PROD759357', 3.18] |
|
, 111249: ['PROD764857', 3.85] |
|
, 111362: ['PROD756138', 3.26] |
|
, 111375: ['PROD771238', 3.00] |
|
, 111529: ['PROD756997', 4.03] |
|
, 111743: ['PROD762778', 3.12] |
|
, 111759: ['PROD728759', 3.75] |
|
, 111921: ['PROD768584', 3.70] |
|
, 111944: ['PROD761808', 3.90] |
|
, 112183: ['PROD761857', 3.27] |
|
, 112316: ['PROD769319', 3.48] |
|
, 112439: ['PROD649445', 4.09] |
|
, 112473: ['PROD633145', 4.16] |
|
, 112556: ['PROD760878', 4.15] |
|
, 112623: ['PROD749918', 2.70] |
|
, 113207: ['PROD766637', 3.90] |
|
, 113453: ['PROD771020', 3.16] |
|
, 113567: ['PROD772780', 4.06] |
|
, 114601: ['PROD766837', 3.61] |
|
, 114762: ['PROD762918', 3.54] |
|
, 115149: ['PROD779841', 3.23] |
|
, 115664: ['PROD756077', 3.66] |
|
, 116213: ['PROD733224', 3.45] |
|
, 116441: ['PROD772158', 4.06] |
|
, 116977: ['PROD765478', 2.37] |
|
, 117176: ['PROD771897', 4.07] |
|
, 117194: ['PROD763958', 3.50] |
|
, 117590: ['PROD768258', 2.29] |
|
, 118354: ['PROD672249', 3.62] |
|
, 118696: ['PROD752139', 2.54] |
|
, 120278: ['PROD779137', 3.60] |
|
, 120400: ['PROD769237', 3.77] |
|
, 120833: ['PROD699492', 3.89] |
|
, 120948: ['PROD784174', 3.96] |
|
, 121358: ['PROD764997', 3.52] |
|
, 121413: ['PROD718298', 3.48] |
|
, 122940: ['PROD751219', 3.83] |
|
, 125541: ['PROD777579', 4.13] |
|
, 128161: ['PROD773624', 3.52] |
|
, 129838: ['PROD661145', 4.00] |
|
, 131200: ['PROD753005', 3.52] |
|
, 131215: ['PROD770937', 3.52] |
|
, 132711: ['PROD617450', 3.94] |
|
, 133543: ['PROD779180', 4.09] |
|
, 133583: ['PROD763400', 3.60] |
|
, 137110: ['PROD623306', 3.52] |
|
, 139223: ['PROD586150', 3.52] |
|
}; |
|
|
|
var movie; |
|
|
|
if (/hbonow/i.test(location.hostname)) { |
|
// index by hbo id instead |
|
hbo_to_mlid_rating = {}; |
|
for (var mlid in mlid_to_hbo_rating) { |
|
var hr = mlid_to_hbo_rating[mlid], hboid = hr[0], rating = hr[1]; |
|
hbo_to_mlid_rating[hboid] = [mlid, rating]; |
|
} |
|
|
|
var hboid = location.pathname.split('/')[2]; |
|
var movie = hbo_to_mlid_rating[hboid]; |
|
if (movie) { |
|
mlid = movie[0]; |
|
tryLink('.primary-content h2', 'https://movielens.org/movies/' + mlid); |
|
} |
|
} else if ((mlid = location.pathname.split('/')[2]) && |
|
(movie = mlid_to_hbo_rating[mlid])) { |
|
var hboid = movie[0]; |
|
tryLink('.movie-title', 'https://www.hbonow.com/docs/' + hboid + '?ap=0'); |
|
} |
|
|
|
function tryLink(selector, url) { |
|
var title = document.querySelector(selector); |
|
if (title) { |
|
var link = document.createElement('a'); |
|
title.appendChild(link); |
|
link.appendChild(title.firstChild); |
|
link.href = url; |
|
} else |
|
setTimeout(tryLink, 500, selector, url); |
|
} |