OCH List

A list of One-Click-Hosters that are supported by nopremium.pl

当前为 2018-07-20 提交的版本,查看 最新版本

此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/25445/614158/OCH%20List.js

  1. // ==UserScript==
  2. // @exclude *
  3. // ==UserLibrary==
  4. // @name OCH List
  5. // @description A list of One-Click-Hosters that are supported by nopremium.pl
  6. // @version 20
  7. // @license GPL-3.0-or-later; http://www.gnu.org/licenses/gpl-3.0.txt
  8. // ==/UserLibrary==
  9. // @namespace cuzi
  10. // @homepageURL https://github.com/cvzi/Userscripts
  11. // @grant GM_xmlhttpRequest
  12. // @grant GM.xmlhttpRequest
  13. // @require http://openuserjs.org/src/libs/cuzi/RequestQueue.js
  14. // ==/UserScript==
  15.  
  16. "use strict";
  17.  
  18. /*
  19.  
  20. var rq = new RequestQueue();
  21. var MAXDOWNLOADSIZE = 2048; // KB
  22.  
  23. */
  24.  
  25. function OCH_permanentlyoffline(link,cb,thisArg) {
  26. cb.call(thisArg,link,0); // Offline
  27. }
  28.  
  29. function OCH_ByFindingString(link,s,cb,thisArg,useURL) {
  30. // Offline if one of the strings [s] is found in the responseText
  31. if(typeof s == "string") {
  32. s = [s];
  33. }
  34. rq.add({
  35. method: "GET",
  36. url: useURL?useURL:link.url,
  37. onprogress: function(response) {
  38. // abort download of big files
  39. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  40. this.__result.abort();
  41. cb.call(thisArg,link,1); // Let's assume big files are online
  42. }
  43. },
  44. onload: function (response){
  45. for(var i = 0; i < s.length; i++) {
  46. if(response.responseText.indexOf(s[i]) != -1) {
  47. cb.call(thisArg,link,0); // Offline
  48. return;
  49. }
  50. }
  51. cb.call(thisArg,link,1); // Online
  52. }
  53. });
  54. }
  55. function OCH_ByNotFindingString(link,s,cb,thisArg,useURL) {
  56. // Offline if none of the strings [s] is found in the responseText
  57. if(typeof s == "string") {
  58. s = [s];
  59. }
  60. rq.add({
  61. method: "GET",
  62. url: useURL?useURL:link.url,
  63. onprogress: function(response) {
  64. // abort download of big files
  65. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  66. this.__result.abort();
  67. cb.call(thisArg,link,1); // Let's assume big files are online
  68. }
  69. },
  70. onload: function (response){
  71. for(var i = 0; i < s.length; i++) {
  72. if(response.responseText.indexOf(s[i]) != -1) {
  73. cb.call(thisArg,link,1); // Online
  74. return;
  75. }
  76. }
  77. cb.call(thisArg,link,0); // Offline
  78. }
  79. });
  80. }
  81. function OCH_ByMatchingFinalUrl(link,re,cb,thisArg,useURL) {
  82. // Offline if one of the RegEx [re] matches the finalUrl
  83. if(!Array.isArray(re)) {
  84. re = [re];
  85. }
  86.  
  87. rq.add({
  88. method: "GET",
  89. url: useURL?useURL:link.url,
  90. onprogress: function(response) {
  91. // abort download of big files
  92. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  93. this.__result.abort();
  94. cb.call(thisArg,link,1); // Let's assume big files are online
  95. }
  96. },
  97. onload: function (response){
  98. for(var i = 0; i < re.length; i++) {
  99. if(re[i].test(response.finalUrl)) {
  100. // Link is offline
  101. cb.call(thisArg,link,0);
  102. return;
  103. }
  104. }
  105. cb.call(thisArg,link,1); // Online
  106. }
  107. });
  108. }
  109.  
  110. var OCH = {
  111.  
  112. /*
  113.  
  114. pattern: A single RegExp or an array of RegExp
  115. multi: An array of multihost-services that support this hoster
  116. title: String
  117. homepage: String/URL
  118. check: void check(link, cb, thisArg)
  119. link : { url: "http://example.com/example.file", [...] }
  120. cb : void thisArg.cb(link, result, errorstring)
  121. link : the original link object
  122. result: 1 -> online, 0 -> offline, -1 -> error
  123. errorstring: may contain error details e.g. the request result, only set if result == -1
  124. thisArg : The value of this provided for the call to cb.
  125. */
  126.  
  127. '180upload' : {
  128. 'pattern' : /^http:\/\/180upload\.com\/\w+$/m,
  129. 'multi' : ['nopremium.pl'],
  130. 'title' : 'Offline: 180upload',
  131. 'homepage' : 'http://180upload.com/',
  132. 'check' : function(link,cb,thisArg) {
  133. OCH_permanentlyoffline(link, cb, thisArg);
  134. }
  135. },
  136. '1fichier' : {
  137. 'pattern' : [/^https?:\/\/(www\.)?1fichier\.com\/.+$/m, /^https?:\/\/\w+\.1fichier\.com\/?.*$/m],
  138. 'multi' : ['nopremium.pl'],
  139. 'title' : '1fichier',
  140. 'homepage' : 'http://1fichier.com/',
  141. 'check' : function(link,cb,thisArg) {
  142. OCH_ByFindingString(link,["The requested file could not be found","The requested file has been deleted"], cb, thisArg);
  143. }
  144. },
  145. '2shared' : {
  146. 'pattern' : /^http:\/\/www\.2shared\.com\/[a-z]+\/\w+\/?(.+\.html)?$/,
  147. 'multi' : [],
  148. 'title' : '2Shared',
  149. 'homepage' : 'http://www.2shared.com/',
  150. 'check' : function(link,cb,thisArg) {
  151. OCH_ByFindingString(link,"VGhlIGZpbGUgbGluayB0aGF0IHlvdSByZXF1ZXN0ZWQgaXMgbm90IHZhbGlkLiBQbGVhc2UgY29udGFjdCBsaW5rIHB1Ymxpc2hlciBvciB0cnkgdG8gbWFrZSBhIHNlYXJjaC4=", cb, thisArg);
  152. }
  153. },
  154. '4shared' : {
  155. 'pattern' : /^http:\/\/www\.4shared\.com\/[a-z]+\/\w+\/?(.+\.html)?$/,
  156. 'multi' : ['nopremium.pl'],
  157. 'title' : '4shared.com',
  158. 'homepage' : 'http://www.4shared.com/',
  159. 'check' : function(link,cb,thisArg) {
  160. OCH_ByFindingString(link,[" is not valid"," is unavailable"," was deleted"], cb, thisArg);
  161. }
  162. },
  163. '4downfiles' : {
  164. 'pattern' :/^http:\/\/4downfiles\.com\/\w+\.html$/m,
  165. 'multi' : [],
  166. 'title' : '4 Down Files',
  167. 'homepage' : 'http://4downfiles.com/',
  168. 'check' : function(link,cb,thisArg) {
  169. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  170. },
  171. },
  172. 'alfafile' : {
  173. 'pattern' : /^https?:\/\/(www\.)?alfafile\.net\/file\/.+$/m,
  174. 'multi' : ['nopremium.pl'],
  175. 'title' : 'Alfafile',
  176. 'homepage' : 'https://alfafile.net',
  177. 'check' : function(link,cb,thisArg) {
  178. OCH_ByFindingString(link,"error-box", cb, thisArg);
  179. },
  180. },
  181. 'bayfiles' : {
  182. 'pattern' : /^https?:\/\/(www\.)?bayfiles\.(net|com)\/file\/\w+\/.+$/m,
  183. 'multi' : ['nopremium.pl'],
  184. 'title' : 'Offline: BayFiles',
  185. 'homepage' : 'http://bayfiles.net/',
  186. 'check' : function(link,cb,thisArg) {
  187. OCH_permanentlyoffline(link, cb, thisArg);
  188. }
  189. },
  190. 'bigfile' : {
  191. 'pattern' : /^https?:\/\/(www\.)?bigfile\.to\/file\/.+\/?.*$/m,
  192. 'multi' : [],
  193. 'title' : 'BigFile',
  194. 'homepage' : 'https://www.bigfile.to/',
  195. 'check' : function(link,cb,thisArg) {
  196. OCH_ByFindingString(link,["errorBox", "error-box"], cb, thisArg);
  197. },
  198. },
  199. 'billionuploads' : {
  200. 'pattern' : /^http:\/\/billionuploads\.com\/\w+$/m,
  201. 'multi' : ['nopremium.pl'],
  202. 'title' : 'Offline: Billion Uploads',
  203. 'homepage' : 'http://billionuploads.com/',
  204. 'check' : function(link,cb,thisArg) {
  205. OCH_permanentlyoffline(link, cb, thisArg);
  206. }
  207. },
  208. 'bitshare' : {
  209. 'pattern' : /^http:\/\/bitshare\.com\/files\/\w+\/.+\.html$/m,
  210. 'multi' : ['nopremium.pl'],
  211. 'title' : 'BitShare.com',
  212. 'homepage' : 'http://bitshare.com/',
  213. 'check' : function(link,cb,thisArg) {
  214. OCH_ByFindingString(link,["Error - File not available","Fehler - Datei nicht verfügbar"], cb, thisArg);
  215. },
  216. },
  217. 'catshare' : {
  218. 'pattern' : /^https?:\/\/(www\.)?catshare\.net\/.+$/m,
  219. 'multi' : ['nopremium.pl'],
  220. 'title' : 'CatShare',
  221. 'homepage' : 'http://catshare.net/',
  222. 'check' :function(link,cb,thisArg) {
  223. OCH_ByFindingString(link,"Podany plik został usunięty", cb, thisArg);
  224. },
  225. },
  226. 'clicknupload' : {
  227. 'pattern' : /^https?:\/\/(www\.)?clicknupload\.(link|org)\/\w+$/m,
  228. 'multi' : ['nopremium.pl'],
  229. 'title' : 'ClicknUpload',
  230. 'homepage' : 'https://clicknupload.org',
  231. 'check' :function(link,cb,thisArg) {
  232. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  233. },
  234. },
  235. 'cloudyfiles' : {
  236. 'pattern' : /^https?:\/\/cloudyfiles\.(com|org)\/\w+.*$/m,
  237. 'multi' : [],
  238. 'title' : 'Cloudyfiles.org',
  239. 'homepage' : 'http://cloudyfiles.org/',
  240. 'check' :function(link,cb,thisArg) {
  241. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  242. },
  243. },
  244. 'cwtv' : {
  245. 'pattern' : /^https?:\/\/www\.cwtv\.com\/cw-video\/.+$/m,
  246. 'multi' : [],
  247. 'title' : 'CW Television Shows',
  248. 'homepage' : 'http://www.cwtv.com/',
  249. 'check' : function(link,cb,thisArg) {
  250. OCH_ByMatchingFinalUrl(link,/\/cw-video\/$/, cb, thisArg);
  251. },
  252. },
  253. 'dailymotion' : {
  254. 'pattern' : /^https?:\/\/www\.dailymotion\.com\/video\/\w+.*$/m,
  255. 'multi' : [],
  256. 'title' : 'Dailymotion',
  257. 'homepage' : 'http://www.dailymotion.com/',
  258. 'check' :function(link,cb,thisArg) {
  259. OCH_ByFindingString(link,"You will be redirected to the homepage", cb, thisArg);
  260. },
  261. },
  262. 'dailyuploads' : {
  263. 'pattern' : /^https?:\/\/dailyuploads\.net\/\w+\/?.*$/m,
  264. 'multi' : [],
  265. 'title' : 'Daily Uploads',
  266. 'homepage' : 'http://dailyuploads.net/',
  267. 'check' :function(link,cb,thisArg) {
  268. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  269. },
  270. },
  271. 'datafile' : {
  272. 'pattern' : /^http:\/\/www\.datafile\.com\/d\/\w+.*$/m,
  273. 'multi' : ['nopremium.pl'],
  274. 'title' : 'DataFile.com',
  275. 'homepage' : 'http://www.datafile.com/',
  276. 'check' :function(link,cb,thisArg) {
  277. OCH_ByFindingString(link,"ErrorCode", cb, thisArg);
  278. },
  279. },
  280. 'depositfiles' : {
  281. 'pattern' : [/^http:\/\/dfiles\.eu\/files\/\w+\/?$/m,/^http:\/\/depositfiles\.com\/files\/\w+\/?$/m],
  282. 'multi' : [],
  283. 'title' : 'DepositFiles',
  284. 'homepage' : 'http://dfiles.eu',
  285. 'check' : function(link,cb,thisArg) {
  286. OCH_ByFindingString(link,"no_download_message", cb, thisArg);
  287. },
  288. },
  289. 'devilshare' : {
  290. 'pattern' : /^https?:\/\/(www\.)?devilshare\.net\/view.+$/m,
  291. 'multi' : ['nopremium.pl'],
  292. 'title' : 'Offline: Devilshare.net',
  293. 'homepage' : 'http://devilshare.net',
  294. 'check' : function(link,cb,thisArg) {
  295. OCH_permanentlyoffline(link, cb, thisArg);
  296. }
  297. },
  298. 'expressleech' : {
  299. 'pattern' : /^https?:\/\/(www\.)?expressleech\.com\/\w+\.html$/m,
  300. 'multi' : [],
  301. 'title' : 'ExpressLeech',
  302. 'homepage' : 'http://expressleech.com/',
  303. 'check' : function(link,cb,thisArg) {
  304. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  305. },
  306. },
  307. 'faststore' : {
  308. 'pattern' : /^https?:\/\/(www\.)?faststore\.org\/.+$/m,
  309. 'multi' : [],
  310. 'title' : 'Fast store',
  311. 'homepage' : 'http://faststore.org/',
  312. 'check' : function(link,cb,thisArg) {
  313. OCH_ByFindingString(link,'<b class="err">', cb, thisArg);
  314. },
  315. },
  316. 'fileboom' : {
  317. 'pattern' : [/^https?:\/\/(www\.)?fileboom\.me\/\w+\/?.*$/m, /^https?:\/\/(www\.)?fboom\.me\/\w+\/?.*$/m],
  318. 'multi' : [],
  319. 'title' : 'FileBoom.me',
  320. 'homepage' : 'http://fileboom.me/',
  321. 'check' : function(link,cb,thisArg) {
  322. OCH_ByFindingString(link,'alert-block', cb, thisArg);
  323. },
  324. },
  325. 'filecloud' : {
  326. 'pattern' : /^http:\/\/filecloud\.io\/\w+(\/.*)?$/m,
  327. 'multi' : [],
  328. 'title' : 'filecloud.io',
  329. 'homepage' : 'http://filecloud.io/',
  330. 'check' : function(link,cb,thisArg) {
  331. // Ask filecloud API.
  332. // https://code.google.com/p/filecloud/wiki/CheckFile
  333. rq.add({
  334. method: "POST",
  335. url: "http://api.filecloud.io/api-check_file.api",
  336. data: "ukey="+encodeURIComponent(link.url.match(/filecloud\.io\/(\w+)(\/.*)?/)[1]),
  337. onload: function (response){
  338. var result = JSON.parse(response.responseText);
  339. if(result.status == "ok") {
  340. if(result.name) {
  341. // Link is online
  342. cb.call(thisArg,link,1);
  343. } else {
  344. // Link is offline
  345. cb.call(thisArg,link,0);
  346. }
  347. } else {
  348. cb.call(thisArg,link,-1,"Strange reply from filecloud API:\n"+response.responseText);
  349. }
  350. }
  351. });
  352. },
  353. },
  354. 'filefactory' : {
  355. 'pattern' : /^https?:\/\/(www\.)?filefactory\.com\/file\/.+$/m,
  356. 'multi' : ['nopremium.pl'],
  357. 'title' : 'FileFactory',
  358. 'homepage' : 'http://www.filefactory.com',
  359. 'check' : function(link,cb,thisArg) {
  360. OCH_ByMatchingFinalUrl(link,/error\.php\?code\=/, cb, thisArg);
  361. }
  362. },
  363. 'fileflares' : {
  364. 'pattern' : /^https?:\/\/fileflares.com\/\w+\/?.*$/m,
  365. 'multi' : [],
  366. 'title' : 'FileFlares.com',
  367. 'homepage' : 'http://fileflares.com/',
  368. 'check' : function(link,cb,thisArg) {
  369. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  370. }
  371. },
  372. 'filejoker' : {
  373. 'pattern' : /^https?:\/\/(www\.)?filejoker\.net\/\w+\/?.*$/m,
  374. 'multi' : [],
  375. 'title' : 'FileJoker',
  376. 'homepage' : 'https://filejoker.net/',
  377. 'check' : function(link,cb,thisArg) {
  378. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  379. }
  380. },
  381.  
  382. 'filemonkey' : {
  383. 'pattern' : /^https?:\/\/www.filemonkey.in\/file\/.+$/m,
  384. 'multi' : ['nopremium.pl'],
  385. 'title' : 'Offline: Filemonkey.in',
  386. 'homepage' : 'https://www.filemonkey.in/',
  387. 'check' : function(link,cb,thisArg) {
  388. OCH_permanentlyoffline(link, cb, thisArg);
  389. }
  390. },
  391. 'fileload' : {
  392. 'pattern' : /^https:\/\/fileload\.io\/.+$/m,
  393. 'multi' : [],
  394. 'title' : 'fileload.io',
  395. 'homepage' : 'https://fileload.io/',
  396. 'check' : function(link,cb,thisArg) {
  397. OCH_ByFindingString(link,"Not found", cb, thisArg);
  398. }
  399. },
  400. 'filescdn' : {
  401. 'pattern' : /^https:\/\/filescdn\.com\/.+$/m,
  402. 'multi' : [],
  403. 'title' : 'filescdn.com',
  404. 'homepage' : 'https://filescdn.com/',
  405. 'check' : function(link,cb,thisArg) {
  406. OCH_ByFindingString(link,"icon-warning text-danger", cb, thisArg);
  407. }
  408. },
  409. 'firedrive' : {
  410. 'pattern' : /^http:\/\/www\.firedrive\.com\/file\/\w+$/m,
  411. 'multi' : ['nopremium.pl'],
  412. 'title' : 'Offline: Firedrive',
  413. 'homepage' : 'http://www.firedrive.com/',
  414. 'check' : function(link,cb,thisArg) {
  415. OCH_permanentlyoffline(link, cb, thisArg);
  416. }
  417. },
  418. 'freakshare' : {
  419. 'pattern' : /^http:\/\/freakshare\.com\/files\/\w+\/.+\.html$/m,
  420. 'multi' : ['nopremium.pl'],
  421. 'title' : 'FreakShare',
  422. 'homepage' : 'http://freakshare.com/',
  423. 'check' : function(link,cb,thisArg) {
  424. OCH_ByFindingString(link,["This file does not exist","Dieser Download existiert nicht"], cb, thisArg);
  425. },
  426. },
  427. 'free' : {
  428. 'pattern' : /^http:\/\/dl\.free\.fr\/\w+$/m,
  429. 'multi' : [],
  430. 'title' : 'Free',
  431. 'homepage' : 'http://dl.free.fr/',
  432. 'check' : function(link,cb,thisArg) {
  433. OCH_ByFindingString(link,["ERREUR","erreur","inexistant"], cb, thisArg);
  434. },
  435. },
  436. 'gboxes' : {
  437. 'pattern' : /^http:\/\/www\.gboxes\.com\/\w+.*$/m,
  438. 'multi' : ['nopremium.pl'],
  439. 'title' : 'Offline: Green Boxes',
  440. 'homepage' : 'http://www.gboxes.com/',
  441. 'check' : function(link,cb,thisArg) {
  442. OCH_permanentlyoffline(link, cb, thisArg);
  443. }
  444. },
  445. 'hitfile' : {
  446. 'pattern' : /^https?\:\/\/(www\.)?hitfile\.net\/\w+.*$/m,
  447. 'multi' : ['nopremium.pl'],
  448. 'title' : 'Hitfile.net',
  449. 'homepage' : 'http://hitfile.net/',
  450. 'check' : function(link,cb,thisArg) {
  451. OCH_ByFindingString(link,"File was deleted or not found", cb, thisArg);
  452. },
  453. },
  454. 'hugefiles' : {
  455. 'pattern' : /^http:\/\/hugefiles\.net\/\w+\/?.*$/m,
  456. 'multi' : ['nopremium.pl'],
  457. 'title' : 'Offline: HugeFiles.net',
  458. 'homepage' : 'http://hugefiles.net/',
  459. 'check' : function(link,cb,thisArg) {
  460. OCH_permanentlyoffline(link, cb, thisArg);
  461. }
  462. },
  463. 'katfile' : {
  464. 'pattern' : /^https?:\/\/katfile\.com\/\w+\/?.*$/m,
  465. 'multi' : ['nopremium.pl'],
  466. 'title' : 'Katfile.com',
  467. 'homepage' : 'http://katfile.com/',
  468. 'check' : function(link,cb,thisArg) {
  469. OCH_ByFindingString(link,"file not found", cb, thisArg);
  470. },
  471. },
  472. 'keep2share' : {
  473. 'pattern' : [/^https?:\/\/keep2share\.cc\/file\/\w+\/?.*$/m, /^https?:\/\/k2s\.cc\/file\/\w+\/?.*$/m],
  474. 'multi' : [],
  475. 'title' : 'Keep2Share',
  476. 'homepage' : 'https://keep2share.cc/',
  477. 'check' : function(link,cb,thisArg) {
  478. OCH_ByFindingString(link,"File not found", cb, thisArg);
  479. },
  480. },
  481. 'kingfiles' : {
  482. 'pattern' : /^https?:\/\/(www\.)?kingfiles\.net\/\w+.*$/m,
  483. 'multi' : ['nopremium.pl'],
  484. 'title' : 'KingFiles.net',
  485. 'homepage' : 'http://www.kingfiles.net/',
  486. 'check' : function(link,cb,thisArg) {
  487. var s = ["The file you were looking for could not be found, sorry for any inconvenience","Reason for deletion"];
  488. rq.add({
  489. method: "GET",
  490. url: link.url,
  491. onload: function (response){
  492. if(response.responseText.length == 0) {
  493. cb.call(thisArg,link,0); // Offline
  494. return;
  495. } else {
  496. for(var i = 0; i < s.length; i++) {
  497. if(response.responseText.indexOf(s[i]) != -1) {
  498. cb.call(thisArg,link,0); // Offline
  499. return;
  500. }
  501. }
  502. cb.call(thisArg,link,1); // Online
  503. }
  504. }
  505. });
  506. },
  507. },
  508. 'letitbit' : {
  509. 'pattern' : /^https?:\/\/(\w+\.)?letitbit\.net\/download\/(\w|\.)+\/.*$/m,
  510. 'multi' : ['nopremium.pl'],
  511. 'title' : 'Offline: Letitbit.net',
  512. 'homepage' : 'http://letitbit.net/',
  513. 'check' : function(link,cb,thisArg) {
  514. OCH_permanentlyoffline(link, cb, thisArg);
  515. }
  516. },
  517. 'lunaticfiles' : {
  518. 'pattern' : /^https?:\/\/lunaticfiles\.com\/\w+\/?.*$/m,
  519. 'multi' : ['nopremium.pl'],
  520. 'title' : 'lunaticfiles.com',
  521. 'homepage' : 'http://lunaticfiles.com/',
  522. 'check' : function(link,cb,thisArg) {
  523. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  524. }
  525. },
  526. 'mediafire' : {
  527. 'pattern' : [/^https?:\/\/www\.mediafire\.com\/?\?.+$/m,/^https?:\/\/www\.mediafire\.com\/download\/.+$/m],
  528. 'multi' : ['nopremium.pl'],
  529. 'title' : 'MediaFire',
  530. 'homepage' : 'https://www.mediafire.com/',
  531. 'check' : function(link,cb,thisArg) {
  532. OCH_ByMatchingFinalUrl(link,/error\.php/, cb, thisArg);
  533. },
  534. },
  535. 'mega' : {
  536. 'pattern' : [/^https?:\/\/mega\.co\.nz\/\#\!\w+!*(\w|-)*$/m, /^https?:\/\/mega\.nz\/\#\!\w+!*(\w|-)*$/m],
  537. 'multi' : ['nopremium.pl'],
  538. 'title' : 'MEGA',
  539. 'homepage' : 'https://mega.co.nz/',
  540. 'check' : function(link,cb,thisArg) {
  541. // Ask mega.co.nz API
  542. rq.add({
  543. method: "POST",
  544. url: "https://eu.api.mega.co.nz/cs?id=0",
  545. data: '[{"a":"g","p":"' + link.url.match(/\#\!(\w+)\!/)[1] + '"}]',
  546. headers: {"Content-Type": "application/json"},
  547. onload: function (response){
  548. if(typeof JSON.parse(response.responseText)[0] == 'number') {
  549. // Link is offline
  550. cb.call(thisArg,link,0);
  551. } else {
  552. // Link is online
  553. cb.call(thisArg,link,1);
  554. }
  555. }
  556. });
  557. },
  558. },
  559. 'mexashare' : {
  560. 'pattern' : [/^https?:\/\/(www\.)?mexashare\.com\/\w+\/?.*$/m],
  561. 'multi' : [],
  562. 'title' : 'MexaShare',
  563. 'homepage' : 'http://www.mexashare.com/',
  564. 'check' : function(link,cb,thisArg) {
  565. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  566. },
  567. },
  568. 'nitroflare' : {
  569. 'pattern' : [/^https?:\/\/nitroflare\.com\/view\/.+$/m],
  570. 'multi' : [],
  571. 'title' : 'NitroFlare',
  572. 'homepage' : 'http://nitroflare.com/',
  573. 'check' : function(link,cb,thisArg) {
  574. OCH_ByFindingString(link,["be redirect to the main page", ' id="error"'], cb, thisArg);
  575. },
  576. },
  577. 'novafile' : {
  578. 'pattern' : [/^https?:\/\/(www\.)?novafile\.com\/\w+\/?.*$/m],
  579. 'multi' : [],
  580. 'title' : 'Novafile',
  581. 'homepage' : 'http://novafile.com',
  582. 'check' : function(link,cb,thisArg) {
  583. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  584. },
  585. },
  586.  
  587. 'oboom' : {
  588. 'pattern' : /^https?:\/\/www\.oboom\.com\/\w+.*$/m,
  589. 'multi' : ['nopremium.pl'],
  590. 'title' : 'OBOOM.com',
  591. 'homepage' : 'https://www.oboom.com/',
  592. 'check' : function(link,cb,thisArg) {
  593. // Ask oboom API.
  594. rq.add({
  595. method: "GET",
  596. url: "https://api.oboom.com/1/info?items="+encodeURIComponent(link.url.match(/oboom\.com\/(\w+)/)[1]),
  597. onload: function (response){
  598. var result = JSON.parse(response.responseText);
  599. if(result[0] == 200) {
  600. if(result[1][0].state == "online") {
  601. // Link is online
  602. cb.call(thisArg,link,1);
  603. } else {
  604. // Link is offline
  605. cb.call(thisArg,link,0);
  606. }
  607. } else {
  608. cb.call(thisArg,link,-1,"Strange reply from oboom API:\n"+response.responseText)
  609. }
  610. }
  611. });
  612. },
  613. },
  614. 'openload' : {
  615. 'pattern' : [/^https?:\/\/openload\.co\/f\/.+$/m],
  616. 'multi' : ['nopremium.pl'],
  617. 'title' : 'Openload',
  618. 'homepage' : 'http://openload.co/',
  619. 'check' : function(link,cb,thisArg) {
  620. OCH_ByFindingString(link,"File not found", cb, thisArg);
  621. },
  622. },
  623. 'potload' : {
  624. 'pattern' :/^http:\/\/potload\.com\/\w+$/m,
  625. 'multi' : [],
  626. 'title' : 'Offline: Potload',
  627. 'homepage' : 'http://potload.com/',
  628. 'check' : function(link,cb,thisArg) {
  629. OCH_permanentlyoffline(link, cb, thisArg);
  630. }
  631. },
  632. 'publish2me' : {
  633. 'pattern' : /^https?:\/\/publish2\.me\/file\/\w+\/?.*$/m,
  634. 'multi' : [],
  635. 'title' : 'Publish.me',
  636. 'homepage' : 'https://publish2.me/',
  637. 'check' : function(link,cb,thisArg) {
  638. OCH_ByFindingString(link,"alert-block", cb, thisArg);
  639. },
  640. },
  641. 'rapidgator' : {
  642. 'pattern' : [/^https?:\/\/rapidgator\.net\/file\/[^#]+$/m,/^https?:\/\/rg\.to\/file\/[^#]+$/m],
  643. 'multi' : ['nopremium.pl'],
  644. 'title' : 'Rapidgator.net',
  645. 'homepage' : 'http://rapidgator.net/',
  646. 'check' : function(link,cb,thisArg) {
  647. OCH_ByMatchingFinalUrl(link,/article\/premium/, cb, thisArg);
  648. }
  649. },
  650. 'rapidu' : {
  651. 'pattern' :/^https?:\/\/(\w+\.)?rapidu\.net\/\w+.*$/m,
  652. 'multi' : ['nopremium.pl'],
  653. 'title' : 'Rapidu.net',
  654. 'homepage' : 'https://rapidu.net/',
  655. 'check' : function(link,cb,thisArg) {
  656. OCH_ByFindingString(link,"File not found", cb, thisArg);
  657. },
  658. },
  659. 'rioupload' : {
  660. 'pattern' : /^http:\/\/(www\.)?rioupload\.com\/\w+$/m,
  661. 'multi' : [],
  662. 'title' : 'RioUpload',
  663. 'homepage' : 'http://rioupload.com/',
  664. 'check' : function(link,cb,thisArg) {
  665. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  666. },
  667. },
  668. 'rockfile' : {
  669. 'pattern' : /^https?\:\/\/(www\.)?rockfile\.(eu|co)\/\w+.*$/m,
  670. 'multi' : ['nopremium.pl'],
  671. 'title' : 'Rockfile.co',
  672. 'homepage' : 'http://rockfile.co',
  673. 'check' : function(link,cb,thisArg) {
  674. // Rockfile has cloudfare protection with a cookie check.
  675. rq.add({
  676. method: "GET",
  677. url: link.url,
  678. onprogress: function(response) {
  679. // abort download of big files
  680. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  681. this.__result.abort();
  682. cb.call(thisArg,link,1); // Let's assume big files are online
  683. }
  684. },
  685. onload: function (response){
  686. if(response.responseText.indexOf("Checking your browser before accessing") != -1) {
  687. cb.call(thisArg,link,-1,"Cloudfare protection, please manually open the website at least once."); // Cloudfare protection
  688. return;
  689. }
  690. else if(response.responseText.indexOf("File Not Found") != -1 || response.responseText.indexOf("fa-chain-broken") != -1 ) {
  691. cb.call(thisArg,link,0); // Offline
  692. return;
  693. }
  694. cb.call(thisArg,link,1); // Online
  695. }
  696. });
  697.  
  698. },
  699. },
  700. 'rusfolder' : {
  701. 'pattern' : /^http:\/\/rusfolder\.com\/\d+$/m,
  702. 'multi' : [],
  703. 'title' : 'Rusfolder.com',
  704. 'homepage' : 'http://rusfolder.com/',
  705. 'check' : function(link,cb,thisArg) {
  706. OCH_ByFindingString(link,"File not found.", cb, thisArg);
  707. },
  708. },
  709. 'salefiles' : {
  710. 'pattern' : /^http:\/\/salefiles\.com\/\w+\/?.*$/m,
  711. 'multi' : [],
  712. 'title' : 'Salefiles',
  713. 'homepage' : 'http://salefiles.com',
  714. 'check' : function(link,cb,thisArg) {
  715. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  716. },
  717. },
  718. 'share-online' : {
  719. 'pattern' : /^http:\/\/www\.share-online\.biz\/dl\/\w+$/m,
  720. 'multi' : ['nopremium.pl'],
  721. 'title' : 'Share-Online',
  722. 'homepage' : 'http://www.share-online.biz/',
  723. 'check' : function(link,cb,thisArg) {
  724. OCH_ByFindingString(link,["The requested file is not available","Die angeforderte Datei konnte nicht gefunden werden"], cb, thisArg);
  725. },
  726. },
  727. 'sockshare' : {
  728. 'pattern' : /^http:\/\/www\.sockshare\.com\/file\/\w+$/m,
  729. 'multi' : ['nopremium.pl'],
  730. 'title' : 'Offline: SockShare',
  731. 'homepage' : 'http://www.sockshare.com/',
  732. 'check' : function(link,cb,thisArg) {
  733. OCH_permanentlyoffline(link, cb, thisArg);
  734. }
  735. },
  736.  
  737. 'soundcloud' : {
  738. 'pattern' : /^https?:\/\/soundcloud.com\/(\w|-)+\/(\w|-)+$/m,
  739. 'multi' : [],
  740. 'title' : 'SoundCloud',
  741. 'homepage' : 'https://soundcloud.com/',
  742. 'check' : function(link,cb,thisArg) {
  743. OCH_ByFindingString(link,"We can't find that track.", cb, thisArg);
  744. },
  745. },
  746. 'storebit' : {
  747. 'pattern' : /^https?:\/\/(www\.)?storbit\.net\/file\/.+$/m,
  748. 'multi' : ['nopremium.pl'],
  749. 'title' : 'Offline: Storbit.net',
  750. 'homepage' : 'http://storbit.net',
  751. 'check' : function(link,cb,thisArg) {
  752. OCH_permanentlyoffline(link, cb, thisArg);
  753. }
  754. },
  755. 'streamcloud' : {
  756. 'pattern' : /^http:\/\/streamcloud\.eu\/\w+$/m,
  757. 'multi' : [],
  758. 'title' : 'Offline: Streamcloud',
  759. 'homepage' : 'http://streamcloud.org/',
  760. 'check' : function(link,cb,thisArg) {
  761. OCH_permanentlyoffline(link, cb, thisArg);
  762. }
  763. },
  764. 'streamin' : {
  765. 'pattern' : /^https?:\/\/streamin\.to\/.+$/m,
  766. 'multi' : ['nopremium.pl'],
  767. 'title' : 'Streamin.to',
  768. 'homepage' : 'http://streamin.to/',
  769. 'check' : function(link,cb,thisArg) {
  770. OCH_ByFindingString(link,"File Deleted", cb, thisArg);
  771. },
  772. },
  773. 'subyshare' : {
  774. 'pattern' : /^https?:\/\/subyshare\.com\/\w+\/?.*$/m,
  775. 'multi' : [],
  776. 'title' : 'Subyshare.com',
  777. 'homepage' : 'http://subyshare.com/',
  778. 'check' : function(link,cb,thisArg) {
  779. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  780. },
  781. },
  782. 'suprafiles' : {
  783. 'pattern' : /^http:\/\/suprafiles\.net\/\w+\/?.*$/m,
  784. 'multi' : [],
  785. 'title' : 'Suprafiles.net',
  786. 'homepage' : 'http://suprafiles.net/',
  787. 'check' : function(link,cb,thisArg) {
  788. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  789. },
  790. },
  791. 'turbobit' : {
  792. 'pattern' : /^http:\/\/turbobit\.net\/\w+.*\.html$/m,
  793. 'multi' : ['nopremium.pl'],
  794. 'title' : 'turbobit.net',
  795. 'homepage' : 'http://turbobit.net/',
  796. 'check' : function(link,cb,thisArg) {
  797. OCH_ByFindingString(link,["File not found","File was not found"], cb, thisArg);
  798. },
  799. },
  800. 'tusfiles' : {
  801. 'pattern' : /^https?:\/\/(www\.)?tusfiles\.net\/\w+$/m,
  802. 'multi' : ['nopremium.pl'],
  803. 'title' : 'TusFiles',
  804. 'homepage' : 'http://tusfiles.net/',
  805. 'check' : function(link,cb,thisArg) {
  806. OCH_ByFindingString(link,"The file you are trying to download is no longer available", cb, thisArg);
  807. },
  808. },
  809. 'unlimitzone' : {
  810. 'pattern' : /^http:\/\/unlimitzone\.com\/\w+.*$/m,
  811. 'multi' : [],
  812. 'title' : 'Unlimit Zone',
  813. 'homepage' : 'http://unlimitzone.com/',
  814. 'check' : function(link,cb,thisArg) {
  815. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  816. },
  817. },
  818. 'up07' : {
  819. 'pattern' : /^https?:\/\/up07\.net\/\w+$/m,
  820. 'multi' : [],
  821. 'title' : 'up07.net',
  822. 'homepage' : 'http://up07.net/',
  823. 'check' : function(link,cb,thisArg) {
  824. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  825. },
  826. },
  827. 'upera' : {
  828. 'pattern' : /^http:\/\/public\.upera\.co\/\w+$/m,
  829. 'multi' : [],
  830. 'title' : 'Upera',
  831. 'homepage' : 'http://public.upera.co/',
  832. 'check' : function(link,cb,thisArg) {
  833. OCH_ByFindingString(link,"Invalid or Deleted File", cb, thisArg);
  834. },
  835. },
  836. 'uploadable' : {
  837. 'pattern' : /^http:\/\/www\.uploadable\.ch\/file\/\w+\/(\w|-|\.)+$/m,
  838. 'multi' : [],
  839. 'title' : 'Offline: Uploadable.ch',
  840. 'homepage' : 'http://www.uploadable.ch/',
  841. 'check' : function(link,cb,thisArg) {
  842. OCH_permanentlyoffline(link, cb, thisArg);
  843. }
  844. },
  845. 'uploadboy' : {
  846. 'pattern' : /^http:\/\/(www\.)?uploadboy\.com\/\w+\.html$/m,
  847. 'multi' : ['nopremium.pl'],
  848. 'title' : 'Uploadboy.com',
  849. 'homepage' : 'http://uploadboy.com/',
  850. 'check' : function(link,cb,thisArg) {
  851. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  852. },
  853. },
  854. 'uploaded' : {
  855. 'pattern' : [/^https?:\/\/uploaded\.(net|to)\/file\/.+$/m,/^http:\/\/ul\.to\/.+$/m],
  856. 'multi' : ['nopremium.pl'],
  857. 'title' : 'uploaded.net',
  858. 'homepage' : 'http://uploaded.net/',
  859. 'check' : function(link,cb,thisArg) {
  860. //OCH_ByMatchingFinalUrl(link,[/uploaded\.net\/404/,/uploaded\.net\/410/], cb, thisArg);
  861. OCH_ByFindingString(link,"Error: ", cb, thisArg);
  862. },
  863. },
  864. 'uploadgig' : {
  865. 'pattern' : /^https?:\/\/uploadgig\.com\/file\/download\/\w+\/?.*$/m,
  866. 'multi' : ['nopremium.pl'],
  867. 'title' : 'UploadGIG',
  868. 'homepage' : 'https://uploadgig.com/',
  869. 'check' : function(link,cb,thisArg) {
  870. OCH_ByFindingString(link,"File not found", cb, thisArg);
  871. },
  872. },
  873. 'uploadingcom' : {
  874. 'pattern' : /^http:\/\/uploading\.com\/\w+\/?.*$/m,
  875. 'multi' : ['nopremium.pl'],
  876. 'title' : 'Uploading.com',
  877. 'homepage' : 'http://uploading.com/',
  878. 'check' : function(link,cb,thisArg) {
  879. OCH_ByFindingString(link,['class="file_error"',"file not found","file was removed"], cb, thisArg);
  880. },
  881. },
  882. 'uploading' : {
  883. 'pattern' : /^http:\/\/(www\.)?uploading\.site\/\w+.*$/m,
  884. 'multi' : ['nopremium.pl'],
  885. 'title' : 'Uploading.site',
  886. 'homepage' : 'http://uploading.site/',
  887. 'check' : function(link,cb,thisArg) {
  888. OCH_ByFindingString(link,["cannot be found", "was removed", "for deletion"], cb, thisArg);
  889. },
  890. },
  891. 'uploadocean' : {
  892. 'pattern' : /^https?:\/\/uploadocean\.com\/\w+$/m,
  893. 'multi' : [],
  894. 'title' : 'UploadOcean',
  895. 'homepage' : 'http://uploadocean.com/',
  896. 'check' : function(link,cb,thisArg) {
  897. OCH_ByFindingString(link, 'deleted.png"', cb, thisArg);
  898. },
  899. },
  900. 'uploadon' : {
  901. 'pattern' : /^http:\/\/uploadon\.me\/\w+\.html$/m,
  902. 'multi' : [],
  903. 'title' : 'Uploadon.me',
  904. 'homepage' : 'http://uploadon.me/',
  905. 'check' : function(link,cb,thisArg) {
  906. OCH_ByFindingString(link, ["File not found", "This page was not found"], cb, thisArg);
  907. },
  908. },
  909. 'uploadrocket' : {
  910. 'pattern' : /^http:\/\/uploadrocket\.net\/\w+(\/|\w|-|\.)+(\.html)?$/m,
  911. 'multi' : ['nopremium.pl'],
  912. 'title' : 'UploadRocket.net',
  913. 'homepage' : 'http://uploadrocket.net/',
  914. 'check' : function(link,cb,thisArg) {
  915. OCH_ByFindingString(link,"The file was removed by administrator", cb, thisArg);
  916. },
  917. },
  918. 'uppit' : {
  919. 'pattern' : /^http:\/\/uppit\.com\/\w+(\/.*)?$/m,
  920. 'multi' : [],
  921. 'title' : 'UppIT',
  922. 'homepage' : 'http://uppit.com/',
  923. 'check' : function(link,cb,thisArg) {
  924. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  925. },
  926. },
  927. 'uptobox' : {
  928. 'pattern' : /^http:\/\/uptobox.com\/\w+(\/.*)?$/m,
  929. 'multi' : ['nopremium.pl'],
  930. 'title' : 'Uptobox',
  931. 'homepage' : 'http://uptobox.com/',
  932. 'check' : function(link,cb,thisArg) {
  933. OCH_ByFindingString(link,'<span class="para_title">File not found', cb, thisArg);
  934. },
  935. },
  936. 'userscloud' : {
  937. 'pattern' : /^https?:\/\/userscloud\.com\/\w+.*$/m,
  938. 'multi' : [],
  939. 'title' : 'Userscloud',
  940. 'homepage' : 'https://userscloud.com/',
  941. 'check' : function(link,cb,thisArg) {
  942. OCH_ByFindingString(link,"label-danger", cb, thisArg);
  943. },
  944. },
  945. 'vevo' : {
  946. 'pattern' : /^https?:\/\/www\.vevo\.com\/watch\/.+$/m,
  947. 'multi' : [],
  948. 'title' : 'VEVO',
  949. 'homepage' : 'https://www.vevo.com/',
  950. 'check' : function(link,cb,thisArg) {
  951. // At the moment there seems to be no straightforward way to get the online/offline status
  952. cb.call(thisArg,link,1); // Online
  953. }
  954. },
  955. 'vidto' : {
  956. 'pattern' : /^https?:\/\/vidto\.me\/\w+\.?\w*$/m,
  957. 'multi' : ['nopremium.pl'],
  958. 'title' : 'vidto.me',
  959. 'homepage' : 'http://vidto.me/',
  960. 'check' : function(link,cb,thisArg) {
  961. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  962. },
  963. },
  964. 'vimeo' : {
  965. 'pattern' : /^https?:\/\/vimeo\.com\/(.+\/)?\d+\/?$/m,
  966. 'multi' : [],
  967. 'title' : 'Vimeo',
  968. 'homepage' : 'https://vimeo.com/',
  969. 'check' : function(link,cb,thisArg) {
  970. OCH_ByFindingString(link,"Page not found", cb, thisArg);
  971. },
  972. },
  973. 'vipfile' : { // TODO: nopremium.pl lists this hoster as "vip-file"
  974. 'pattern' : /^http:\/\/\w+.vip-file.com\/downloadlib\/.*$/m,
  975. 'multi' : ['nopremium.pl'],
  976. 'title' : 'VIP-file',
  977. 'homepage' : 'http://vip-file.com/',
  978. 'check' : function(link,cb,thisArg) {
  979. OCH_ByFindingString(link,"File not found", cb, thisArg, link.url+"?lang=en");
  980. },
  981. },
  982. 'youtube' : {
  983. 'pattern' : /^https?:\/\/www\.youtube\.com\/watch(\?v=|\/).+$/m,
  984. 'multi' : ['nopremium.pl'],
  985. 'title' : 'YouTube',
  986. 'homepage' : 'https://www.youtube.com/',
  987. 'check' : function(link,cb,thisArg) {
  988. OCH_ByFindingString(link,"<title>YouTube</title>", cb, thisArg);
  989. },
  990. },
  991. 'zippyshare' : {
  992. 'pattern' : /^http:\/\/www\d*\.zippyshare\.com\/v\/\w+\/file\.html$/m,
  993. 'multi' : ['nopremium.pl'],
  994. 'title' : 'Zippyshare.com',
  995. 'homepage' : 'http://www.zippyshare.com/',
  996. 'check' : function(link,cb,thisArg) {
  997. OCH_ByFindingString(link,"does not exist", cb, thisArg);
  998. }
  999. }
  1000.  
  1001.  
  1002. }