OCH List

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

目前为 2020-06-24 提交的版本,查看 最新版本

此脚本不应直接安装,它是供其他脚本使用的外部库。如果你需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/25445/820011/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 28
  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. function getOCH(rq, MAXDOWNLOADSIZE) {
  25.  
  26. if(!rq) {
  27. rq = {"add" : function() {console.log("OCH List: Error: No RequestQueue() parameter set")}}
  28. }
  29. if(!MAXDOWNLOADSIZE) {
  30. MAXDOWNLOADSIZE = 2048
  31. }
  32.  
  33.  
  34. var OCH_permanentlyoffline = function(link,cb,thisArg) {
  35. cb.call(thisArg,link,0); // Offline
  36. }
  37.  
  38. var OCH_ByFindingString = function(link,s,cb,thisArg,useURL) {
  39. // Offline if one of the strings [s] is found in the responseText
  40. if(typeof s == "string") {
  41. s = [s];
  42. }
  43. rq.add({
  44. method: "GET",
  45. url: useURL?useURL:link.url,
  46. onprogress: function(response) {
  47. // abort download of big files
  48. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  49. this.__result.abort();
  50. cb.call(thisArg,link,1); // Let's assume big files are online
  51. }
  52. },
  53. onload: function (response){
  54. for(var i = 0; i < s.length; i++) {
  55. if(response.responseText.indexOf(s[i]) != -1) {
  56. cb.call(thisArg,link,0); // Offline
  57. return;
  58. }
  59. }
  60. cb.call(thisArg,link,1); // Online
  61. },
  62. onerror: function (response){
  63. cb.call(thisArg,link,0); // Offline
  64. }
  65. });
  66. }
  67. var OCH_ByNotFindingString = function(link,s,cb,thisArg,useURL) {
  68. // Offline if none of the strings [s] is found in the responseText
  69. if(typeof s == "string") {
  70. s = [s];
  71. }
  72. rq.add({
  73. method: "GET",
  74. url: useURL?useURL:link.url,
  75. onprogress: function(response) {
  76. // abort download of big files
  77. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  78. this.__result.abort();
  79. cb.call(thisArg,link,1); // Let's assume big files are online
  80. }
  81. },
  82. onload: function (response){
  83. for(var i = 0; i < s.length; i++) {
  84. if(response.responseText.indexOf(s[i]) != -1) {
  85. cb.call(thisArg,link,1); // Online
  86. return;
  87. }
  88. }
  89. cb.call(thisArg,link,0); // Offline
  90. },
  91. onerror: function (response){
  92. cb.call(thisArg,link,0); // Offline
  93. }
  94. });
  95. }
  96. var OCH_ByMatchingFinalUrl = function(link,re,cb,thisArg,useURL) {
  97. // Offline if one of the RegEx [re] matches the finalUrl
  98. if(!Array.isArray(re)) {
  99. re = [re];
  100. }
  101.  
  102. rq.add({
  103. method: "GET",
  104. url: useURL?useURL:link.url,
  105. onprogress: function(response) {
  106. // abort download of big files
  107. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  108. this.__result.abort();
  109. cb.call(thisArg,link,1); // Let's assume big files are online
  110. }
  111. },
  112. onload: function (response){
  113. for(var i = 0; i < re.length; i++) {
  114. if(re[i].test(response.finalUrl)) {
  115. // Link is offline
  116. cb.call(thisArg,link,0);
  117. return;
  118. }
  119. }
  120. cb.call(thisArg,link,1); // Online
  121. },
  122. onerror: function (response){
  123. cb.call(thisArg,link,0); // Offline
  124. }
  125. });
  126. }
  127.  
  128. return {
  129.  
  130. /*
  131.  
  132. pattern: A single RegExp or an array of RegExp
  133. multi: An array of multihost-services that support this hoster
  134. title: String
  135. homepage: String/URL
  136. check: void check(link, cb, thisArg)
  137. link : { url: "http://example.com/example.file", [...] }
  138. cb : void thisArg.cb(link, result, errorstring)
  139. link : the original link object
  140. result: 1 -> online, 0 -> offline, -1 -> error
  141. errorstring: may contain error details e.g. the request result, only set if result == -1
  142. thisArg : The value of this provided for the call to cb.
  143. */
  144.  
  145. '180upload' : {
  146. 'pattern' : /^http:\/\/180upload\.com\/\w+$/m,
  147. 'multi' : [],
  148. 'title' : 'Offline: 180upload',
  149. 'homepage' : 'http://180upload.com/',
  150. 'check' : function(link,cb,thisArg) {
  151. OCH_permanentlyoffline(link, cb, thisArg);
  152. }
  153. },
  154. '1fichier' : {
  155. 'pattern' : [/^https?:\/\/(www\.)?1fichier\.com\/.+$/m, /^https?:\/\/\w+\.1fichier\.com\/?.*$/m],
  156. 'multi' : ['nopremium.pl', 'premiumize.me'],
  157. 'title' : '1fichier',
  158. 'homepage' : 'http://1fichier.com/',
  159. 'check' : function(link,cb,thisArg) {
  160. OCH_ByFindingString(link,["The requested file could not be found","The requested file has been deleted"], cb, thisArg);
  161. }
  162. },
  163. '2shared' : {
  164. 'pattern' : /^https?:\/\/www\.2shared\.com\/[a-z]+\/\w+\/?(.+\.html)?$/,
  165. 'multi' : [],
  166. 'title' : '2Shared',
  167. 'homepage' : 'http://www.2shared.com/',
  168. 'check' : function(link,cb,thisArg) {
  169. OCH_ByFindingString(link,"VGhlIGZpbGUgbGluayB0aGF0IHlvdSByZXF1ZXN0ZWQgaXMgbm90IHZhbGlkLiBQbGVhc2UgY29udGFjdCBsaW5rIHB1Ymxpc2hlciBvciB0cnkgdG8gbWFrZSBhIHNlYXJjaC4=", cb, thisArg);
  170. }
  171. },
  172. '4shared' : {
  173. 'pattern' : /^https?:\/\/www\.4shared\.com\/[a-z]+\/\w+\/?(.+\.html)?$/,
  174. 'multi' : ['nopremium.pl'],
  175. 'title' : '4shared.com',
  176. 'homepage' : 'http://www.4shared.com/',
  177. 'check' : function(link,cb,thisArg) {
  178. OCH_ByFindingString(link,[" is not valid"," is unavailable"," was deleted"], cb, thisArg);
  179. }
  180. },
  181. '4downfiles' : {
  182. 'pattern' :/^https?:\/\/4downfiles?\.com?\/\w+\/?(.+\.html)?$/m,
  183. 'multi' : [],
  184. 'title' : '4 Down Files',
  185. 'homepage' : 'http://4downfiles.co/',
  186. 'check' : function(link,cb,thisArg) {
  187. OCH_ByFindingString(link, "File Not Found", cb, thisArg);
  188. },
  189. },
  190. 'alfafile' : {
  191. 'pattern' : /^https?:\/\/(www\.)?alfafile\.net\/file\/.+$/m,
  192. 'multi' : ['nopremium.pl'],
  193. 'title' : 'Alfafile',
  194. 'homepage' : 'https://alfafile.net',
  195. 'check' : function(link,cb,thisArg) {
  196. OCH_ByFindingString(link, "error-box", cb, thisArg);
  197. },
  198. },
  199. 'ayefiles' : {
  200. 'pattern' : /^https?:\/\/ayefiles\.com\/\w+\/?.*$/m,
  201. 'multi' : [],
  202. 'title' : 'AyeFiles',
  203. 'homepage' : 'https://ayefiles.com/',
  204. 'check' : function(link,cb,thisArg) {
  205. OCH_ByFindingString(link, "File Not Found", cb, thisArg);
  206. },
  207. },
  208. 'bayfiles' : {
  209. 'pattern' : /^https?:\/\/(www\.)?bayfiles\.(net|com)\/\w+\/?.*$/m,
  210. 'multi' : [],
  211. 'title' : 'BayFiles',
  212. 'homepage' : 'http://bayfiles.com/',
  213. 'check' : function(link,cb,thisArg) {
  214. rq.add({
  215. method: "GET",
  216. url: "https://api.bayfiles.com/v2/file/" + encodeURIComponent(link.url.match(/bayfiles\.(net|com)\/(\w+)/)[2]) + "/info",
  217. onload: function (response){
  218. var result = JSON.parse(response.responseText);
  219. if(result && result.status) {
  220. // Link is online
  221. cb.call(thisArg,link,1);
  222. } else {
  223. // Link is offline
  224. cb.call(thisArg,link,0);
  225. }
  226. },
  227. onerror: function (response){
  228. cb.call(thisArg,link,0); // Offline
  229. }
  230. });
  231. }
  232. },
  233. 'bigfile' : {
  234. 'pattern' : /^https?:\/\/(www\.)?bigfile\.to\/file\/.+\/?.*$/m,
  235. 'multi' : [],
  236. 'title' : 'BigFile',
  237. 'homepage' : 'https://www.bigfile.to/',
  238. 'check' : function(link,cb,thisArg) {
  239. OCH_ByFindingString(link,["errorBox", "error-box"], cb, thisArg);
  240. },
  241. },
  242. 'billionuploads' : {
  243. 'pattern' : /^http:\/\/billionuploads\.com\/\w+$/m,
  244. 'multi' : ['nopremium.pl'],
  245. 'title' : 'Offline: Billion Uploads',
  246. 'homepage' : 'http://billionuploads.com/',
  247. 'check' : function(link,cb,thisArg) {
  248. OCH_permanentlyoffline(link, cb, thisArg);
  249. }
  250. },
  251. 'bitshare' : {
  252. 'pattern' : /^http:\/\/bitshare\.com\/files\/\w+\/.+\.html$/m,
  253. 'multi' : [],
  254. 'title' : 'BitShare.com',
  255. 'homepage' : 'http://bitshare.com/',
  256. 'check' : function(link,cb,thisArg) {
  257. OCH_ByFindingString(link,["Error - File not available","Fehler - Datei nicht verfügbar"], cb, thisArg);
  258. },
  259. },
  260. 'catshare' : {
  261. 'pattern' : /^https?:\/\/(www\.)?catshare\.net\/.+$/m,
  262. 'multi' : ['nopremium.pl'],
  263. 'title' : 'CatShare',
  264. 'homepage' : 'http://catshare.net/',
  265. 'check' :function(link,cb,thisArg) {
  266. OCH_ByFindingString(link,"Podany plik został usunięty", cb, thisArg);
  267. },
  268. },
  269. 'clicknupload' : {
  270. 'pattern' : /^https?:\/\/(www\.)?clicknupload\.(link|org|co)\/\w+\/?.*$/m,
  271. 'multi' : ['nopremium.pl', 'premiumize.me'],
  272. 'title' : 'ClicknUpload',
  273. 'homepage' : 'https://clicknupload.co',
  274. 'check' :function(link,cb,thisArg) {
  275. OCH_ByFindingString(link,["File Not Found", "Error</td>"], cb, thisArg);
  276. },
  277. },
  278. 'cloudyfiles' : {
  279. 'pattern' : [/^https?:\/\/cloudyfiles\.(me|com|org)\/\w+.*$/m, /^https?:\/\/businessnewsstories\.online\/\w+.*$/m],
  280. 'multi' : [],
  281. 'title' : 'Offline: Cloudyfiles.org',
  282. 'homepage' : 'http://cloudyfiles.org/',
  283. 'check' :function(link,cb,thisArg) {
  284. OCH_permanentlyoffline(link, cb, thisArg);
  285. },
  286. },
  287. 'cwtv' : {
  288. 'pattern' : /^https?:\/\/www\.cwtv\.com\/cw-video\/.+$/m,
  289. 'multi' : [],
  290. 'title' : 'CW Television Shows',
  291. 'homepage' : 'http://www.cwtv.com/',
  292. 'check' : function(link,cb,thisArg) {
  293. OCH_ByMatchingFinalUrl(link,/\/cw-video\/$/, cb, thisArg);
  294. },
  295. },
  296. 'dailymotion' : {
  297. 'pattern' : /^https?:\/\/www\.dailymotion\.com\/video\/\w+.*$/m,
  298. 'multi' : [],
  299. 'title' : 'Dailymotion',
  300. 'homepage' : 'http://www.dailymotion.com/',
  301. 'check' :function(link,cb,thisArg) {
  302. OCH_ByFindingString(link,"You will be redirected to the homepage", cb, thisArg);
  303. },
  304. },
  305. 'dailyuploads' : {
  306. 'pattern' : /^https?:\/\/dailyuploads\.net\/\w+\/?.*$/m,
  307. 'multi' : [],
  308. 'title' : 'Daily Uploads',
  309. 'homepage' : 'http://dailyuploads.net/',
  310. 'check' :function(link,cb,thisArg) {
  311. OCH_ByFindingString(link,["File Not Found", "file was removed"], cb, thisArg);
  312. },
  313. },
  314. 'datafile' : {
  315. 'pattern' : /^http:\/\/www\.datafile\.com\/d\/\w+.*$/m,
  316. 'multi' : [],
  317. 'title' : 'DataFile.com',
  318. 'homepage' : 'http://www.datafile.com/',
  319. 'check' :function(link,cb,thisArg) {
  320. OCH_ByFindingString(link,"ErrorCode", cb, thisArg);
  321. },
  322. },
  323. 'datei' : {
  324. 'pattern' : /^https?:\/\/(www\.)?datei\.to\/\?\w+$/m,
  325. 'multi' : ['premiumize.me'],
  326. 'title' : 'datei.to',
  327. 'homepage' : 'http://datei.to/',
  328. 'check' :function(link,cb,thisArg) {
  329. OCH_ByFindingString(link,"icon_deleted.png", cb, thisArg);
  330. },
  331. },
  332. 'ddl' : {
  333. 'pattern' : /^https?:\/\/(www\.)?ddl\.to\/\w+.*$/m,
  334. 'multi' : ['premiumize.me'],
  335. 'title' : 'ddl.to',
  336. 'homepage' : 'https://ddl.to/',
  337. 'check' :function(link,cb,thisArg) {
  338. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  339. },
  340. },
  341. 'depositfiles' : {
  342. 'pattern' : [/^http:\/\/dfiles\.eu\/files\/\w+\/?$/m,/^http:\/\/depositfiles\.com\/files\/\w+\/?$/m],
  343. 'multi' : [],
  344. 'title' : 'DepositFiles',
  345. 'homepage' : 'http://dfiles.eu',
  346. 'check' : function(link,cb,thisArg) {
  347. OCH_ByFindingString(link,"no_download_message", cb, thisArg);
  348. },
  349. },
  350. 'devilshare' : {
  351. 'pattern' : /^https?:\/\/(www\.)?devilshare\.net\/view.+$/m,
  352. 'multi' : ['nopremium.pl'],
  353. 'title' : 'Offline: Devilshare.net',
  354. 'homepage' : 'http://devilshare.net',
  355. 'check' : function(link,cb,thisArg) {
  356. OCH_permanentlyoffline(link, cb, thisArg);
  357. }
  358. },
  359. 'douploads' : {
  360. 'pattern' : /^https?:\/\/(www\.)?douploads\.com\/\w{8}\w+$/m,
  361. 'multi' : [],
  362. 'title' : 'DoUploads',
  363. 'homepage' : 'https://douploads.com/',
  364. 'check' : function(link,cb,thisArg) {
  365. OCH_ByFindingString(link,["File Not Found", "file was removed"], cb, thisArg);
  366. },
  367. },
  368. 'dropapk' : {
  369. 'pattern' : /^https?:\/\/(www\.)?dropapk\.to\/\w+.*$/m,
  370. 'multi' : [],
  371. 'title' : 'Dropapk',
  372. 'homepage' : 'https://dropapk.to/',
  373. 'check' : function(link,cb,thisArg) {
  374. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  375. },
  376. },
  377. 'earn4files' : {
  378. 'pattern' : /^https?:\/\/(www\.)?earn4files\.com\/\w+.*$/m,
  379. 'multi' : [],
  380. 'title' : 'Earn4Files',
  381. 'homepage' : 'https://earn4files.com/',
  382. 'check' : function(link,cb,thisArg) {
  383. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  384. },
  385. },
  386. 'expressleech' : {
  387. 'pattern' : /^https?:\/\/(www\.)?expressleech\.com\/\w+\.html$/m,
  388. 'multi' : [],
  389. 'title' : 'ExpressLeech',
  390. 'homepage' : 'http://expressleech.com/',
  391. 'check' : function(link,cb,thisArg) {
  392. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  393. },
  394. },
  395. 'faststore' : {
  396. 'pattern' : /^https?:\/\/(www\.)?faststore\.org\/.+$/m,
  397. 'multi' : [],
  398. 'title' : 'Fast store',
  399. 'homepage' : 'http://faststore.org/',
  400. 'check' : function(link,cb,thisArg) {
  401. OCH_ByFindingString(link,'<b class="err">', cb, thisArg);
  402. },
  403. },
  404. 'file' : {
  405. 'pattern' : /^https?:\/\/(www\.)?file\.al\/\w+\/?.*$/m,
  406. 'multi' : ['premiumize.me'],
  407. 'title' : 'File.AL',
  408. 'homepage' : 'https://file.al/',
  409. 'check' : function(link,cb,thisArg) {
  410. OCH_ByFindingString(link,'File Not Found', cb, thisArg);
  411. },
  412. },
  413. 'fileboom' : {
  414. 'pattern' : [/^https?:\/\/(www\.)?fileboom\.me\/\w+\/?.*$/m, /^https?:\/\/(www\.)?fboom\.me\/\w+\/?.*$/m],
  415. 'multi' : [],
  416. 'title' : 'FileBoom.me',
  417. 'homepage' : 'http://fileboom.me/',
  418. 'check' : function(link,cb,thisArg) {
  419. OCH_ByFindingString(link,'alert-block', cb, thisArg);
  420. },
  421. },
  422. 'filecloud' : {
  423. 'pattern' : /^http:\/\/filecloud\.io\/\w+(\/.*)?$/m,
  424. 'multi' : [],
  425. 'title' : 'filecloud.io',
  426. 'homepage' : 'http://filecloud.io/',
  427. 'check' : function(link,cb,thisArg) {
  428. // Ask filecloud API.
  429. // https://code.google.com/p/filecloud/wiki/CheckFile
  430. rq.add({
  431. method: "POST",
  432. url: "http://api.filecloud.io/api-check_file.api",
  433. data: "ukey="+encodeURIComponent(link.url.match(/filecloud\.io\/(\w+)(\/.*)?/)[1]),
  434. onload: function (response){
  435. var result = JSON.parse(response.responseText);
  436. if(result.status == "ok") {
  437. if(result.name) {
  438. // Link is online
  439. cb.call(thisArg,link,1);
  440. } else {
  441. // Link is offline
  442. cb.call(thisArg,link,0);
  443. }
  444. } else {
  445. cb.call(thisArg,link,-1,"Strange reply from filecloud API:\n"+response.responseText);
  446. }
  447. },
  448. onerror: function (response){
  449. cb.call(thisArg,link,0); // Offline
  450. }
  451. });
  452. },
  453. },
  454. 'filefactory' : {
  455. 'pattern' : /^https?:\/\/(www\.)?filefactory\.com\/file\/.+$/m,
  456. 'multi' : ['nopremium.pl', 'premiumize.me'],
  457. 'title' : 'FileFactory',
  458. 'homepage' : 'http://www.filefactory.com',
  459. 'check' : function(link,cb,thisArg) {
  460. OCH_ByMatchingFinalUrl(link,/error\.php\?code\=/, cb, thisArg);
  461. }
  462. },
  463. 'fileflares' : {
  464. 'pattern' : /^https?:\/\/fileflares.com\/\w+\/?.*$/m,
  465. 'multi' : [],
  466. 'title' : 'Offline: FileFlares.com',
  467. 'homepage' : 'http://fileflares.com/',
  468. 'check' : function(link,cb,thisArg) {
  469. OCH_permanentlyoffline(link, cb, thisArg);
  470. }
  471. },
  472. 'filefox' : {
  473. 'pattern' : /^https?:\/\/(www\.)?filefox\.cc\/\w+\/?.*$/m,
  474. 'multi' : [],
  475. 'title' : 'FileFox.cc',
  476. 'homepage' : 'https://filefox.cc/',
  477. 'check' : function(link,cb,thisArg) {
  478. OCH_ByFindingString(link,'File could not be found', cb, thisArg);
  479. },
  480. },
  481. 'filejoker' : {
  482. 'pattern' : /^https?:\/\/(www\.)?filejoker\.net\/\w+\/?.*$/m,
  483. 'multi' : [],
  484. 'title' : 'FileJoker',
  485. 'homepage' : 'https://filejoker.net/',
  486. 'check' : function(link,cb,thisArg) {
  487. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  488. }
  489. },
  490.  
  491. 'filemonkey' : {
  492. 'pattern' : /^https?:\/\/www.filemonkey.in\/file\/.+$/m,
  493. 'multi' : ['nopremium.pl'],
  494. 'title' : 'Offline: Filemonkey.in',
  495. 'homepage' : 'https://www.filemonkey.in/',
  496. 'check' : function(link,cb,thisArg) {
  497. OCH_permanentlyoffline(link, cb, thisArg);
  498. }
  499. },
  500. 'fileload' : {
  501. 'pattern' : /^https:\/\/fileload\.io\/.+$/m,
  502. 'multi' : [],
  503. 'title' : 'fileload.io',
  504. 'homepage' : 'https://fileload.io/',
  505. 'check' : function(link,cb,thisArg) {
  506. OCH_ByFindingString(link,"Not found", cb, thisArg);
  507. }
  508. },
  509. 'filer' : {
  510. 'pattern' : /^https:\/\/filer\.net\/get\/\w+$/m,
  511. 'multi' : ['premiumize.me'],
  512. 'title' : 'filer.net',
  513. 'homepage' : 'https://filer.net/',
  514. 'check' : function(link,cb,thisArg) {
  515. OCH_ByFindingString(link,["Datei nicht mehr vorhanden","Not available","Not found"], cb, thisArg);
  516. }
  517. },
  518. 'filescdn' : {
  519. 'pattern' : /^https:\/\/filescdn\.com\/.+$/m,
  520. 'multi' : [],
  521. 'title' : 'filescdn.com',
  522. 'homepage' : 'https://filescdn.com/',
  523. 'check' : function(link,cb,thisArg) {
  524. OCH_ByFindingString(link,"icon-warning text-danger", cb, thisArg);
  525. }
  526. },
  527. 'filespace' : {
  528. 'pattern' : /^https?:\/\/(www\.)?filespace\.com\/\w+\/?$/m,
  529. 'multi' : ['premiumize.me'],
  530. 'title' : 'FileSpace',
  531. 'homepage' : 'http://filespace.com/',
  532. 'check' : function(link,cb,thisArg) {
  533. OCH_ByFindingString(link,"File not found", cb, thisArg);
  534. }
  535. },
  536. 'filestore' : {
  537. 'pattern' : /^https?:\/\/filestore\.to\/\?d=\w+$/m,
  538. 'multi' : ['premiumize.me'],
  539. 'title' : 'Filestore',
  540. 'homepage' : 'http://filestore.to/',
  541. 'check' : function(link,cb,thisArg) {
  542. OCH_ByFindingString(link,["File not found", "Datei nicht gefunden"], cb, thisArg);
  543. }
  544. },
  545. 'fileup' : {
  546. 'pattern' : /^https?:\/\/(www\.)?file-up\.org\/\w+\/?$/m,
  547. 'multi' : [],
  548. 'title' : 'file-up.org',
  549. 'homepage' : 'https://file-up.org/',
  550. 'check' : function(link,cb,thisArg) {
  551. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  552. }
  553. },
  554. 'fileupload' : {
  555. 'pattern' : /^https?:\/\/(www\.)?file-upload\.com\/\w+\/?$/m,
  556. 'multi' : [],
  557. 'title' : 'FileUpload',
  558. 'homepage' : 'https://www.file-upload.com/',
  559. 'check' : function(link,cb,thisArg) {
  560. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  561. }
  562. },
  563. 'firedrive' : {
  564. 'pattern' : /^http:\/\/www\.firedrive\.com\/file\/\w+$/m,
  565. 'multi' : ['nopremium.pl'],
  566. 'title' : 'Offline: Firedrive',
  567. 'homepage' : 'http://www.firedrive.com/',
  568. 'check' : function(link,cb,thisArg) {
  569. OCH_permanentlyoffline(link, cb, thisArg);
  570. }
  571. },
  572. 'fireget' : {
  573. 'pattern' : /^https?:\/\/fireget\.com\/\w+\/?.*$/m,
  574. 'multi' : ['premiumize.me'],
  575. 'title' : 'Fireget',
  576. 'homepage' : 'http://fireget.com/',
  577. 'check' : function(link,cb,thisArg) {
  578. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  579. }
  580. },
  581. 'freakshare' : {
  582. 'pattern' : /^http:\/\/freakshare\.com\/files\/\w+\/.+\.html$/m,
  583. 'multi' : [],
  584. 'title' : 'FreakShare',
  585. 'homepage' : 'http://freakshare.com/',
  586. 'check' : function(link,cb,thisArg) {
  587. OCH_ByFindingString(link,["This file does not exist","Dieser Download existiert nicht"], cb, thisArg);
  588. },
  589. },
  590. 'free' : {
  591. 'pattern' : /^http:\/\/dl\.free\.fr\/\w+$/m,
  592. 'multi' : [],
  593. 'title' : 'Free',
  594. 'homepage' : 'http://dl.free.fr/',
  595. 'check' : function(link,cb,thisArg) {
  596. OCH_ByFindingString(link,["ERREUR","erreur","inexistant"], cb, thisArg);
  597. },
  598. },
  599. 'gboxes' : {
  600. 'pattern' : /^http:\/\/www\.gboxes\.com\/\w+.*$/m,
  601. 'multi' : [],
  602. 'title' : 'Offline: Green Boxes',
  603. 'homepage' : 'http://www.gboxes.com/',
  604. 'check' : function(link,cb,thisArg) {
  605. OCH_permanentlyoffline(link, cb, thisArg);
  606. }
  607. },
  608. 'hitfile' : {
  609. 'pattern' : [/^https?\:\/\/(www\.)?hitfile\.net\/\w+.*$/m, /^https?\:\/\/(www\.)?hil\.to\/\w+.*$/m],
  610. 'multi' : ['nopremium.pl', 'premiumize.me'],
  611. 'title' : 'Hitfile.net',
  612. 'homepage' : 'http://hitfile.net/',
  613. 'check' : function(link,cb,thisArg) {
  614. OCH_ByFindingString(link,"File was deleted or not found", cb, thisArg);
  615. },
  616. },
  617. 'hugefiles' : {
  618. 'pattern' : /^http:\/\/hugefiles\.net\/\w+\/?.*$/m,
  619. 'multi' : [],
  620. 'title' : 'Offline: HugeFiles.net',
  621. 'homepage' : 'http://hugefiles.net/',
  622. 'check' : function(link,cb,thisArg) {
  623. OCH_permanentlyoffline(link, cb, thisArg);
  624. }
  625. },
  626. 'isra' : {
  627. 'pattern' : /^https:\/\/isra\.cloud\/\w+\/?.*$/m,
  628. 'multi' : ['nopremium.pl', 'premiumize.me'],
  629. 'title' : 'Isracloud',
  630. 'homepage' : 'https://isra.cloud/',
  631. 'check' : function(link,cb,thisArg) {
  632. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  633. }
  634. },
  635. 'katfile' : {
  636. 'pattern' : /^https?:\/\/katfile\.com\/\w+\/?.*$/m,
  637. 'multi' : ['nopremium.pl'],
  638. 'title' : 'Katfile.com',
  639. 'homepage' : 'http://katfile.com/',
  640. 'check' : function(link,cb,thisArg) {
  641. OCH_ByFindingString(link,["file not found", "File has been removed", "File Not Found", "The file expired", "Error</h3>"], cb, thisArg);
  642. },
  643. },
  644. 'keep2share' : {
  645. 'pattern' : [/^https?:\/\/keep2share\.cc\/file\/\w+\/?.*$/m, /^https?:\/\/(spa\.)?k2s\.cc\/file\/\w+\/?.*$/m],
  646. 'multi' : [],
  647. 'title' : 'Keep2Share',
  648. 'homepage' : 'https://keep2share.cc/',
  649. 'check' : function(link,cb,thisArg) {
  650. // https://api.k2s.cc/v1/files/{id}
  651. var fileid = link.url.match(/file\/(\w+)\//)[1];
  652. rq.add({
  653. method: "GET",
  654. url: "https://api.k2s.cc/v1/files/" + fileid,
  655. onload: function (response){
  656. if(response.status == 401) {
  657. cb.call(thisArg,link,-1,"Please manually open the keep2share website at least once to initiate a proper session.");
  658. return;
  659. }
  660. if(response.status != 200 || !response.responseText) {
  661. cb.call(thisArg,link,0); // Offline
  662. return;
  663. } else {
  664. var jdata = JSON.parse(response.responseText);
  665. if(jdata["id"] != fileid) {
  666. cb.call(thisArg,link,0); // Offline
  667. return;
  668. }
  669. if(jdata["isDeleted"]) {
  670. cb.call(thisArg,link,0); // Offline
  671. return;
  672. }
  673.  
  674. cb.call(thisArg,link,1); // Online
  675. }
  676. },
  677. onerror: function(response) {
  678. cb.call(thisArg,link,0); // Offline
  679. }
  680. });
  681. },
  682. },
  683. 'kingfiles' : {
  684. 'pattern' : /^https?:\/\/(www\.)?kingfiles\.net\/\w+.*$/m,
  685. 'multi' : [],
  686. 'title' : 'KingFiles.net',
  687. 'homepage' : 'http://www.kingfiles.net/',
  688. 'check' : function(link,cb,thisArg) {
  689. var s = ["The file you were looking for could not be found, sorry for any inconvenience","Reason for deletion"];
  690. rq.add({
  691. method: "GET",
  692. url: link.url,
  693. onload: function (response){
  694. if(response.responseText.length == 0) {
  695. cb.call(thisArg,link,0); // Offline
  696. return;
  697. } else {
  698. for(var i = 0; i < s.length; i++) {
  699. if(response.responseText.indexOf(s[i]) != -1) {
  700. cb.call(thisArg,link,0); // Offline
  701. return;
  702. }
  703. }
  704. cb.call(thisArg,link,1); // Online
  705. }
  706. },
  707. onerror: function (response){
  708. cb.call(thisArg,link,0); // Offline
  709. }
  710. });
  711. },
  712. },
  713. 'letitbit' : {
  714. 'pattern' : /^https?:\/\/(\w+\.)?letitbit\.net\/download\/(\w|\.)+\/.*$/m,
  715. 'multi' : [],
  716. 'title' : 'Offline: Letitbit.net',
  717. 'homepage' : 'http://letitbit.net/',
  718. 'check' : function(link,cb,thisArg) {
  719. OCH_permanentlyoffline(link, cb, thisArg);
  720. }
  721. },
  722. 'lunaticfiles' : {
  723. 'pattern' : /^https?:\/\/lunaticfiles\.com\/\w+\/?.*$/m,
  724. 'multi' : ['nopremium.pl'],
  725. 'title' : 'lunaticfiles.com',
  726. 'homepage' : 'http://lunaticfiles.com/',
  727. 'check' : function(link,cb,thisArg) {
  728. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  729. }
  730. },
  731. 'mediafire' : {
  732. 'pattern' : [/^https?:\/\/www\.mediafire\.com\/?\?.+$/m,/^https?:\/\/www\.mediafire\.com\/download\/.+$/m],
  733. 'multi' : ['nopremium.pl', 'premiumize.me'],
  734. 'title' : 'MediaFire',
  735. 'homepage' : 'https://www.mediafire.com/',
  736. 'check' : function(link,cb,thisArg) {
  737. OCH_ByMatchingFinalUrl(link,/error\.php/, cb, thisArg);
  738. },
  739. },
  740. 'mega' : {
  741. 'pattern' : [/^https?:\/\/mega\.co\.nz\/\#\!\w+!*(\w|-)*$/m, /^https?:\/\/mega\.nz\/\#\!\w+!*(\w|-)*$/m],
  742. 'multi' : ['nopremium.pl', 'premiumize.me'],
  743. 'title' : 'MEGA',
  744. 'homepage' : 'https://mega.co.nz/',
  745. 'check' : function(link,cb,thisArg) {
  746. // Ask mega.co.nz API
  747. rq.add({
  748. method: "POST",
  749. url: "https://eu.api.mega.co.nz/cs?id=0",
  750. data: '[{"a":"g","p":"' + link.url.match(/\#\!(\w+)\!/)[1] + '"}]',
  751. headers: {"Content-Type": "application/json"},
  752. onload: function (response){
  753. if(typeof JSON.parse(response.responseText)[0] == 'number') {
  754. // Link is offline
  755. cb.call(thisArg,link,0);
  756. } else {
  757. // Link is online
  758. cb.call(thisArg,link,1);
  759. }
  760. },
  761. onerror: function (response){
  762. cb.call(thisArg,link,0); // Offline
  763. }
  764. });
  765. },
  766. },
  767. 'mexashare' : {
  768. 'pattern' : [/^https?:\/\/(www\.)?mexashare\.com\/\w+\/?.*$/m],
  769. 'multi' : [],
  770. 'title' : 'MexaShare',
  771. 'homepage' : 'http://www.mexashare.com/',
  772. 'check' : function(link,cb,thisArg) {
  773. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  774. },
  775. },
  776. 'mixloads' : {
  777. 'pattern' : /^https?:\/\/mixloads\.com\/\w+.*$/m,
  778. 'multi' : [],
  779. 'title' : 'MixLoads.Com',
  780. 'homepage' : 'https://mixloads.com/',
  781. 'check' : function(link,cb,thisArg) {
  782. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  783. },
  784. },
  785. 'modsbase' : {
  786. 'pattern' : [/^https?:\/\/modsbase\.com\/\w+\/?.*$/m],
  787. 'multi' : ['premiumize.me'],
  788. 'title' : 'modsbase',
  789. 'homepage' : 'https://modsbase.com/',
  790. 'check' : function(link,cb,thisArg) {
  791. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  792. },
  793. },
  794. 'nitroflare' : {
  795. 'pattern' : [/^https?:\/\/nitroflare\.com\/view\/.+$/m],
  796. 'multi' : [],
  797. 'title' : 'NitroFlare',
  798. 'homepage' : 'http://nitroflare.com/',
  799. 'check' : function(link,cb,thisArg) {
  800. OCH_ByFindingString(link,["be redirect to the main page", ' id="error"'], cb, thisArg);
  801. },
  802. },
  803. 'novafile' : {
  804. 'pattern' : [/^https?:\/\/(www\.)?novafile\.com\/\w+\/?.*$/m],
  805. 'multi' : [],
  806. 'title' : 'Novafile',
  807. 'homepage' : 'http://novafile.com',
  808. 'check' : function(link,cb,thisArg) {
  809. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  810. },
  811. },
  812.  
  813. 'oboom' : {
  814. 'pattern' : /^https?:\/\/www\.oboom\.com\/\w+.*$/m,
  815. 'multi' : [],
  816. 'title' : 'OBOOM.com',
  817. 'homepage' : 'https://www.oboom.com/',
  818. 'check' : function(link,cb,thisArg) {
  819. // Ask oboom API.
  820. rq.add({
  821. method: "GET",
  822. url: "https://api.oboom.com/1/info?items="+encodeURIComponent(link.url.match(/oboom\.com\/(\w+)/)[1]),
  823. onload: function (response){
  824. var result = JSON.parse(response.responseText);
  825. if(result[0] == 200) {
  826. if(result[1][0].state == "online") {
  827. // Link is online
  828. cb.call(thisArg,link,1);
  829. } else {
  830. // Link is offline
  831. cb.call(thisArg,link,0);
  832. }
  833. } else {
  834. cb.call(thisArg,link,-1,"Strange reply from oboom API:\n"+response.responseText)
  835. }
  836. },
  837. onerror: function (response){
  838. cb.call(thisArg,link,0); // Offline
  839. }
  840. });
  841. },
  842. },
  843. 'openload' : {
  844. 'pattern' : [/^https?:\/\/openload\.co\/f\/.+$/m],
  845. 'multi' : ['nopremium.pl', 'premiumize.me'],
  846. 'title' : 'Offline: Openload',
  847. 'homepage' : 'http://openload.co/',
  848. 'check' : function(link,cb,thisArg) {
  849. OCH_permanentlyoffline(link, cb, thisArg);
  850. },
  851. },
  852. 'potload' : {
  853. 'pattern' :/^http:\/\/potload\.com\/\w+$/m,
  854. 'multi' : [],
  855. 'title' : 'Offline: Potload',
  856. 'homepage' : 'http://potload.com/',
  857. 'check' : function(link,cb,thisArg) {
  858. OCH_permanentlyoffline(link, cb, thisArg);
  859. }
  860. },
  861. 'publish2me' : {
  862. 'pattern' : /^https?:\/\/publish2\.me\/file\/\w+\/?.*$/m,
  863. 'multi' : [],
  864. 'title' : 'Publish.me',
  865. 'homepage' : 'https://publish2.me/',
  866. 'check' : function(link,cb,thisArg) {
  867. OCH_ByFindingString(link,"alert-block", cb, thisArg);
  868. },
  869. },
  870. 'rapidgator' : {
  871. 'pattern' : [/^https?:\/\/rapidgator\.net\/file\/[^#]+$/m,/^https?:\/\/rg\.to\/file\/[^#]+$/m],
  872. 'multi' : ['nopremium.pl'],
  873. 'title' : 'Rapidgator.net',
  874. 'homepage' : 'http://rapidgator.net/',
  875. 'check' : function(link,cb,thisArg) {
  876. OCH_ByMatchingFinalUrl(link,/article\/premium/, cb, thisArg);
  877. }
  878. },
  879. 'rapidu' : {
  880. 'pattern' :/^https?:\/\/(\w+\.)?rapidu\.net\/\w+.*$/m,
  881. 'multi' : ['nopremium.pl'],
  882. 'title' : 'Rapidu.net',
  883. 'homepage' : 'https://rapidu.net/',
  884. 'check' : function(link,cb,thisArg) {
  885. OCH_ByFindingString(link,"File not found", cb, thisArg);
  886. },
  887. },
  888. 'rapidrar' : {
  889. 'pattern' :/^https?:\/\/(\w+\.)?rapidrar\.com\/\w+.*$/m,
  890. 'multi' : ['nopremium.pl'],
  891. 'title' : 'RapidRAR',
  892. 'homepage' : 'https://rapidrar.com/',
  893. 'check' : function(link,cb,thisArg) {
  894. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  895. },
  896. },
  897. 'rioupload' : {
  898. 'pattern' : /^http:\/\/(www\.)?rioupload\.com\/\w+$/m,
  899. 'multi' : [],
  900. 'title' : 'RioUpload',
  901. 'homepage' : 'http://rioupload.com/',
  902. 'check' : function(link,cb,thisArg) {
  903. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  904. },
  905. },
  906. 'rockfile' : {
  907. 'pattern' : /^https?\:\/\/(www\.)?rockfile\.(eu|co)\/\w+.*$/m,
  908. 'multi' : ['nopremium.pl'],
  909. 'title' : 'Rockfile.co',
  910. 'homepage' : 'http://rockfile.co',
  911. 'check' : function(link,cb,thisArg) {
  912. // Rockfile has cloudfare protection with a cookie check.
  913. rq.add({
  914. method: "GET",
  915. url: link.url,
  916. onprogress: function(response) {
  917. // abort download of big files
  918. if((Math.max(response.loaded,response.total)/1024) > MAXDOWNLOADSIZE) {
  919. this.__result.abort();
  920. cb.call(thisArg,link,1); // Let's assume big files are online
  921. }
  922. },
  923. onload: function (response){
  924. if(response.responseText.indexOf("Checking your browser before accessing") != -1) {
  925. cb.call(thisArg,link,-1,"Cloudfare protection, please manually open the website at least once."); // Cloudfare protection
  926. return;
  927. }
  928. else if(response.responseText.indexOf("File Not Found") != -1 || response.responseText.indexOf("fa-chain-broken") != -1 ) {
  929. cb.call(thisArg,link,0); // Offline
  930. return;
  931. }
  932. cb.call(thisArg,link,1); // Online
  933. },
  934. onerror: function (response){
  935. cb.call(thisArg,link,0); // Offline
  936. }
  937. });
  938.  
  939. },
  940. },
  941. 'rusfolder' : {
  942. 'pattern' : /^http:\/\/rusfolder\.com\/\d+$/m,
  943. 'multi' : [],
  944. 'title' : 'Rusfolder.com',
  945. 'homepage' : 'http://rusfolder.com/',
  946. 'check' : function(link,cb,thisArg) {
  947. OCH_ByFindingString(link,"File not found.", cb, thisArg);
  948. },
  949. },
  950. 'salefiles' : {
  951. 'pattern' : /^http:\/\/salefiles\.com\/\w+\/?.*$/m,
  952. 'multi' : [],
  953. 'title' : 'Salefiles',
  954. 'homepage' : 'http://salefiles.com',
  955. 'check' : function(link,cb,thisArg) {
  956. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  957. },
  958. },
  959. 'share-online' : {
  960. 'pattern' : /^http:\/\/www\.share-online\.biz\/dl\/\w+$/m,
  961. 'multi' : [],
  962. 'title' : 'Share-Online',
  963. 'homepage' : 'http://www.share-online.biz/',
  964. 'check' : function(link,cb,thisArg) {
  965. OCH_ByFindingString(link,["The requested file is not available","Die angeforderte Datei konnte nicht gefunden werden"], cb, thisArg);
  966. },
  967. },
  968. 'sockshare' : {
  969. 'pattern' : /^http:\/\/www\.sockshare\.com\/file\/\w+$/m,
  970. 'multi' : ['nopremium.pl'],
  971. 'title' : 'Offline: SockShare',
  972. 'homepage' : 'http://www.sockshare.com/',
  973. 'check' : function(link,cb,thisArg) {
  974. OCH_permanentlyoffline(link, cb, thisArg);
  975. }
  976. },
  977.  
  978. 'soundcloud' : {
  979. 'pattern' : /^https?:\/\/soundcloud.com\/(\w|-)+\/(\w|-)+$/m,
  980. 'multi' : [],
  981. 'title' : 'SoundCloud',
  982. 'homepage' : 'https://soundcloud.com/',
  983. 'check' : function(link,cb,thisArg) {
  984. OCH_ByFindingString(link,"We can't find that track.", cb, thisArg);
  985. },
  986. },
  987. 'storebit' : {
  988. 'pattern' : /^https?:\/\/(www\.)?storbit\.net\/file\/.+$/m,
  989. 'multi' : ['nopremium.pl'],
  990. 'title' : 'Offline: Storbit.net',
  991. 'homepage' : 'http://storbit.net',
  992. 'check' : function(link,cb,thisArg) {
  993. OCH_permanentlyoffline(link, cb, thisArg);
  994. }
  995. },
  996. 'spicyfile' : {
  997. 'pattern' : /^https?:\/\/(www\.)?spicyfile\.com\/\w+$/m,
  998. 'multi' : ['premiumize.me'],
  999. 'title' : 'spicyfile.com',
  1000. 'homepage' : 'http://spicyfile.com',
  1001. 'check' : function(link,cb,thisArg) {
  1002. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1003. }
  1004. },
  1005. 'streamcloud' : {
  1006. 'pattern' : /^http:\/\/streamcloud\.eu\/\w+$/m,
  1007. 'multi' : [],
  1008. 'title' : 'Offline: Streamcloud',
  1009. 'homepage' : 'http://streamcloud.org/',
  1010. 'check' : function(link,cb,thisArg) {
  1011. OCH_permanentlyoffline(link, cb, thisArg);
  1012. }
  1013. },
  1014. 'streamin' : {
  1015. 'pattern' : /^https?:\/\/streamin\.to\/.+$/m,
  1016. 'multi' : ['nopremium.pl'],
  1017. 'title' : 'Streamin.to',
  1018. 'homepage' : 'http://streamin.to/',
  1019. 'check' : function(link,cb,thisArg) {
  1020. OCH_ByFindingString(link,"File Deleted", cb, thisArg);
  1021. },
  1022. },
  1023. 'subyshare' : {
  1024. 'pattern' : /^https?:\/\/subyshare\.com\/\w+\/?.*$/m,
  1025. 'multi' : [],
  1026. 'title' : 'Subyshare.com',
  1027. 'homepage' : 'http://subyshare.com/',
  1028. 'check' : function(link,cb,thisArg) {
  1029. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1030. },
  1031. },
  1032. 'suprafiles' : {
  1033. 'pattern' : [/^https?:\/\/suprafiles\.(me|net|org)\/\w+\/?.*$/m, /^https?:\/\/srfiles\.com\/\w+\/?.*$/m],
  1034. 'multi' : [],
  1035. 'title' : 'Offline: Suprafiles',
  1036. 'homepage' : 'http://suprafiles.org/',
  1037. 'check' : function(link,cb,thisArg) {
  1038. OCH_permanentlyoffline(link, cb, thisArg);
  1039. },
  1040. },
  1041. 'turbobit' : {
  1042. 'pattern' : [/^https?:\/\/turbobit\.net\/\w+.*\.html$/m, /^https?:\/\/turb\.to\/\w+.*\.html$/m],
  1043. 'multi' : ['nopremium.pl', 'premiumize.me'],
  1044. 'title' : 'turbobit.net',
  1045. 'homepage' : 'http://turbobit.net/',
  1046. 'check' : function(link,cb,thisArg) {
  1047. OCH_ByFindingString(link,["File not found","File was not found"], cb, thisArg);
  1048. },
  1049. },
  1050. 'tusfiles' : {
  1051. 'pattern' : /^https?:\/\/(www\.)?tusfiles\.net\/\w+$/m,
  1052. 'multi' : ['nopremium.pl'],
  1053. 'title' : 'TusFiles',
  1054. 'homepage' : 'http://tusfiles.net/',
  1055. 'check' : function(link,cb,thisArg) {
  1056. OCH_ByFindingString(link,"The file you are trying to download is no longer available", cb, thisArg);
  1057. },
  1058. },
  1059. 'ubiqfile' : {
  1060. 'pattern' : /^https?:\/\/ubiqfile\.com\/\w+$/m,
  1061. 'multi' : ['premiumize.me'],
  1062. 'title' : 'ubiqfile',
  1063. 'homepage' : 'http://ubiqfile.com/',
  1064. 'check' : function(link,cb,thisArg) {
  1065. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1066. },
  1067. },
  1068. 'unlimitzone' : {
  1069. 'pattern' : /^http:\/\/unlimitzone\.com\/\w+.*$/m,
  1070. 'multi' : [],
  1071. 'title' : 'Unlimit Zone',
  1072. 'homepage' : 'http://unlimitzone.com/',
  1073. 'check' : function(link,cb,thisArg) {
  1074. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1075. },
  1076. },
  1077. 'up07' : {
  1078. 'pattern' : /^https?:\/\/up07\.net\/\w+$/m,
  1079. 'multi' : [],
  1080. 'title' : 'up07.net',
  1081. 'homepage' : 'http://up07.net/',
  1082. 'check' : function(link,cb,thisArg) {
  1083. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1084. },
  1085. },
  1086. 'upera' : {
  1087. 'pattern' : /^http:\/\/public\.upera\.co\/\w+$/m,
  1088. 'multi' : [],
  1089. 'title' : 'Upera',
  1090. 'homepage' : 'http://public.upera.co/',
  1091. 'check' : function(link,cb,thisArg) {
  1092. OCH_ByFindingString(link,"Invalid or Deleted File", cb, thisArg);
  1093. },
  1094. },
  1095. 'uploadable' : {
  1096. 'pattern' : /^http:\/\/www\.uploadable\.ch\/file\/\w+\/(\w|-|\.)+$/m,
  1097. 'multi' : [],
  1098. 'title' : 'Offline: Uploadable.ch',
  1099. 'homepage' : 'http://www.uploadable.ch/',
  1100. 'check' : function(link,cb,thisArg) {
  1101. OCH_permanentlyoffline(link, cb, thisArg);
  1102. }
  1103. },
  1104. 'uploadac' : {
  1105. 'pattern' : [/^https?:\/\/upload\.ac\/\w+\/?.*$/m, /^https?:\/\/uplod\.io\/\w+\/?.*$/m],
  1106. 'multi' : [],
  1107. 'title' : 'Upload.ac',
  1108. 'homepage' : 'https://upload.ac/',
  1109. 'check' : function(link,cb,thisArg) {
  1110. OCH_ByFindingString(link,"No File Found", cb, thisArg);
  1111. }
  1112. },
  1113. 'uploadboy' : {
  1114. 'pattern' : /^http:\/\/(www\.)?uploadboy\.com\/\w+\.html$/m,
  1115. 'multi' : ['nopremium.pl'],
  1116. 'title' : 'Uploadboy.com',
  1117. 'homepage' : 'http://uploadboy.com/',
  1118. 'check' : function(link,cb,thisArg) {
  1119. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1120. },
  1121. },
  1122. 'uploaded' : {
  1123. 'pattern' : [/^https?:\/\/uploaded\.(net|to)\/file\/.+$/m,/^http:\/\/ul\.to\/.+$/m],
  1124. 'multi' : ['nopremium.pl', 'premiumize.me'],
  1125. 'title' : 'uploaded.net',
  1126. 'homepage' : 'http://uploaded.net/',
  1127. 'check' : function(link,cb,thisArg) {
  1128. //OCH_ByMatchingFinalUrl(link,[/uploaded\.net\/404/,/uploaded\.net\/410/], cb, thisArg);
  1129. OCH_ByFindingString(link,"Error: ", cb, thisArg);
  1130. },
  1131. },
  1132. 'uploadboy' : {
  1133. 'pattern' : /^https?:\/\/uploadboy\.(me|com)\/\w+\/?.*$/m,
  1134. 'multi' : ['premiumize.me'],
  1135. 'title' : 'Uploadboy',
  1136. 'homepage' : 'https://uploadboy.com/',
  1137. 'check' : function(link,cb,thisArg) {
  1138. OCH_ByFindingString(link,["not be found", "File not found"], cb, thisArg);
  1139. },
  1140. },
  1141. 'uploadgig' : {
  1142. 'pattern' : /^https?:\/\/uploadgig\.com\/file\/download\/\w+\/?.*$/m,
  1143. 'multi' : ['nopremium.pl'],
  1144. 'title' : 'UploadGIG',
  1145. 'homepage' : 'https://uploadgig.com/',
  1146. 'check' : function(link,cb,thisArg) {
  1147. OCH_ByFindingString(link,"File not found", cb, thisArg);
  1148. },
  1149. },
  1150. 'uploadingcom' : {
  1151. 'pattern' : /^http:\/\/uploading\.com\/\w+\/?.*$/m,
  1152. 'multi' : ['nopremium.pl'],
  1153. 'title' : 'Uploading.com',
  1154. 'homepage' : 'http://uploading.com/',
  1155. 'check' : function(link,cb,thisArg) {
  1156. OCH_ByFindingString(link,['class="file_error"',"file not found","file was removed"], cb, thisArg);
  1157. },
  1158. },
  1159. 'uploading' : {
  1160. 'pattern' : /^http:\/\/(www\.)?uploading\.site\/\w+.*$/m,
  1161. 'multi' : ['nopremium.pl'],
  1162. 'title' : 'Uploading.site',
  1163. 'homepage' : 'http://uploading.site/',
  1164. 'check' : function(link,cb,thisArg) {
  1165. OCH_ByFindingString(link,["cannot be found", "was removed", "for deletion"], cb, thisArg);
  1166. },
  1167. },
  1168. 'uploadocean' : {
  1169. 'pattern' : /^https?:\/\/uploadocean\.com\/\w+$/m,
  1170. 'multi' : [],
  1171. 'title' : 'UploadOcean',
  1172. 'homepage' : 'http://uploadocean.com/',
  1173. 'check' : function(link,cb,thisArg) {
  1174. OCH_ByFindingString(link, 'deleted.png"', cb, thisArg);
  1175. },
  1176. },
  1177. 'uploadon' : {
  1178. 'pattern' : /^http:\/\/uploadon\.me\/\w+\.html$/m,
  1179. 'multi' : [],
  1180. 'title' : 'Uploadon.me',
  1181. 'homepage' : 'http://uploadon.me/',
  1182. 'check' : function(link,cb,thisArg) {
  1183. OCH_ByFindingString(link, ["File not found", "This page was not found"], cb, thisArg);
  1184. },
  1185. },
  1186. 'uploadrocket' : {
  1187. 'pattern' : /^http:\/\/uploadrocket\.net\/\w+(\/|\w|-|\.)+(\.html)?$/m,
  1188. 'multi' : ['nopremium.pl'],
  1189. 'title' : 'UploadRocket.net',
  1190. 'homepage' : 'http://uploadrocket.net/',
  1191. 'check' : function(link,cb,thisArg) {
  1192. OCH_ByFindingString(link,"The file was removed by administrator", cb, thisArg);
  1193. },
  1194. },
  1195. 'uppit' : {
  1196. 'pattern' : /^http:\/\/uppit\.com\/\w+(\/.*)?$/m,
  1197. 'multi' : [],
  1198. 'title' : 'UppIT',
  1199. 'homepage' : 'http://uppit.com/',
  1200. 'check' : function(link,cb,thisArg) {
  1201. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1202. },
  1203. },
  1204. 'uptobox' : {
  1205. 'pattern' : /^http:\/\/uptobox.com\/\w+(\/.*)?$/m,
  1206. 'multi' : ['nopremium.pl'],
  1207. 'title' : 'Uptobox',
  1208. 'homepage' : 'http://uptobox.com/',
  1209. 'check' : function(link,cb,thisArg) {
  1210. OCH_ByFindingString(link,'<span class="para_title">File not found', cb, thisArg);
  1211. },
  1212. },
  1213. 'userscloud' : {
  1214. 'pattern' : /^https?:\/\/userscloud\.com\/\w+.*$/m,
  1215. 'multi' : ['premiumize.me'],
  1216. 'title' : 'Userscloud',
  1217. 'homepage' : 'https://userscloud.com/',
  1218. 'check' : function(link,cb,thisArg) {
  1219. OCH_ByFindingString(link,["label-danger", "The file is no longer available"], cb, thisArg);
  1220. },
  1221. },
  1222. 'usersdrive' : {
  1223. 'pattern' : /^https?:\/\/usersdrive\.com\/\w+.*$/m,
  1224. 'multi' : [],
  1225. 'title' : 'Usersdrive',
  1226. 'homepage' : 'https://usersdrive.com/',
  1227. 'check' : function(link,cb,thisArg) {
  1228. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1229. },
  1230. },
  1231. 'vevo' : {
  1232. 'pattern' : /^https?:\/\/www\.vevo\.com\/watch\/.+$/m,
  1233. 'multi' : [],
  1234. 'title' : 'VEVO',
  1235. 'homepage' : 'https://www.vevo.com/',
  1236. 'check' : function(link,cb,thisArg) {
  1237. // At the moment there seems to be no straightforward way to get the online/offline status
  1238. cb.call(thisArg,link,1); // Online
  1239. }
  1240. },
  1241. 'vidto' : {
  1242. 'pattern' : /^https?:\/\/vidto\.me\/\w+\.?\w*$/m,
  1243. 'multi' : ['nopremium.pl'],
  1244. 'title' : 'vidto.me',
  1245. 'homepage' : 'http://vidto.me/',
  1246. 'check' : function(link,cb,thisArg) {
  1247. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1248. }
  1249. },
  1250. 'vimeo' : {
  1251. 'pattern' : /^https?:\/\/vimeo\.com\/(.+\/)?\d+\/?$/m,
  1252. 'multi' : [],
  1253. 'title' : 'Vimeo',
  1254. 'homepage' : 'https://vimeo.com/',
  1255. 'check' : function(link,cb,thisArg) {
  1256. OCH_ByFindingString(link,"Page not found", cb, thisArg);
  1257. }
  1258. },
  1259. 'vipfile' : {
  1260. 'pattern' : /^http:\/\/(\w+.)?vip-file.(com|net)\/downloadlib\/.*$/m,
  1261. 'multi' : [],
  1262. 'title' : 'VIP-file',
  1263. 'homepage' : 'http://vip-file.net/',
  1264. 'check' : function(link,cb,thisArg) {
  1265. OCH_ByFindingString(link,"File not found", cb, thisArg, link.url+"?lang=en");
  1266. }
  1267. },
  1268. 'wdupload' : {
  1269. 'pattern' : /^https?:\/\/www\.wdupload\.com\/file\/\w+\/?.*$/m,
  1270. 'multi' : ['premiumize.me'],
  1271. 'title' : 'wdupload.com',
  1272. 'homepage' : 'http://wdupload.com/',
  1273. 'check' : function(link,cb,thisArg) {
  1274. OCH_ByFindingString(link,"file-error", cb, thisArg);
  1275. }
  1276. },
  1277. 'worldbytez' : {
  1278. 'pattern' : /^https?:\/\/worldbytez\.com\/\w+$/m,
  1279. 'multi' : ['premiumize.me'],
  1280. 'title' : 'worldbytez.com',
  1281. 'homepage' : 'https://worldbytez.com/',
  1282. 'check' : function(link,cb,thisArg) {
  1283. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1284. }
  1285. },
  1286. 'xubster' : {
  1287. 'pattern' : /^https?:\/\/(www\.)?xubster\.com\/\w+\/?.*$/m,
  1288. 'multi' : ['premiumize.me'],
  1289. 'title' : 'xubster.com',
  1290. 'homepage' : 'https://xubster.com/',
  1291. 'check' : function(link,cb,thisArg) {
  1292. OCH_ByFindingString(link,"File Not Found", cb, thisArg);
  1293. },
  1294. },
  1295. 'youtube' : {
  1296. 'pattern' : /^https?:\/\/www\.youtube\.com\/watch(\?v=|\/).+$/m,
  1297. 'multi' : ['nopremium.pl'],
  1298. 'title' : 'YouTube',
  1299. 'homepage' : 'https://www.youtube.com/',
  1300. 'check' : function(link,cb,thisArg) {
  1301. OCH_ByFindingString(link,"<title>YouTube</title>", cb, thisArg);
  1302. },
  1303. },
  1304. 'zippyshare' : {
  1305. 'pattern' : /^https?:\/\/www\d*\.zippyshare\.com\/v\/\w+\/file\.html$/m,
  1306. 'multi' : ['nopremium.pl', 'premiumize.me'],
  1307. 'title' : 'Zippyshare.com',
  1308. 'homepage' : 'http://www.zippyshare.com/',
  1309. 'check' : function(link,cb,thisArg) {
  1310. OCH_ByFindingString(link,"does not exist", cb, thisArg);
  1311. }
  1312. }
  1313.  
  1314.  
  1315. }
  1316. }