OCH List

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

目前为 2018-11-18 提交的版本。查看 最新版本

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