Popular Post Perks Posted May 25, 2018 Popular Post Share Posted May 25, 2018 depois da conversa no Q&A fiquei curioso sobre algumas que usem que possam partilhar, pessoalmente sou um fã de bookmarklets, por isso vou deixar aqui algumas mas gostaria que partilhassem mais Doc Size Saber o tamanho dum site Streamable upload - fazer upload dum video para o streamable de sites suportados (inclui sapo por exemplo) Mp4 Download é o que meti antes, para fazer downlaod de videos de centenas de sites Convert Youtube Converter um vídeo do YouTube para MP3, GIF ou MP4 Save Video me Download videos from Dailymotion, Facebook, Vimeo, Twitter, Vine, Aol Video, Rumble.com, Ustream, Break.com easily! tiny URL Short URL Gmail This - Abre um novo mail no Gmail com o URL actual para instalarem no vosso browser basta arrastar o link daqui para a barra do vosso browser Partilhem aí algumas que usem 6 2 Link to comment Share on other sites More sharing options...
Ovelha Posted May 25, 2018 Share Posted May 25, 2018 Nunca usei, mas parece-me porreiro. Podes fazer um pequeno toturial de como se usam? Experimentei fazer o que disseste (arrastar) mas não funcionou. Link to comment Share on other sites More sharing options...
Perks Posted May 25, 2018 Author Share Posted May 25, 2018 basta arrastar para a barra de boormarks, depois quando quiseres usar é só carregar experimenta a do Doc Size, arrasta para a barra e carrega lá, vais ver que aparece uma caixa com o tamanho da página disclaimer: não sei como é no safari por exemplo, só uso Chrome ou Firefox 1 Link to comment Share on other sites More sharing options...
Spark Posted May 25, 2018 Share Posted May 25, 2018 És mazé um cata-likes Spoiler 1 Link to comment Share on other sites More sharing options...
Perks Posted May 25, 2018 Author Share Posted May 25, 2018 4 minutes ago, Spark said: És mazé um cata-likes Reveal hidden contents Foste tu quem pediu isto, se não querias não pedias o @Mini0n também deve ter uns porreiros, penso que na altura do blackfriday ele tinha feito uma para os preços Link to comment Share on other sites More sharing options...
Ovelha Posted May 25, 2018 Share Posted May 25, 2018 19 minutes ago, Perks said: basta arrastar para a barra de boormarks, depois quando quiseres usar é só carregar experimenta a do Doc Size, arrasta para a barra e carrega lá, vais ver que aparece uma caixa com o tamanho da página disclaimer: não sei como é no safari por exemplo, só uso Chrome ou Firefox Bah, básico! Obrigado, não conhecia, mas vou procurar mais! Link to comment Share on other sites More sharing options...
Spark Posted May 25, 2018 Share Posted May 25, 2018 17 minutes ago, Perks said: Foste tu quem pediu isto, se não querias não pedias Estava a brincar... Btw, Será que quis dizer: bookmarklets Link to comment Share on other sites More sharing options...
Perks Posted May 25, 2018 Author Share Posted May 25, 2018 foi um engano, no texto estava bem outra que me lembrei View Image a Google removeu o view image do google images, com esta basta carregar no botão que extrai o url da imagem Link to comment Share on other sites More sharing options...
Mini0n Posted May 25, 2018 Share Posted May 25, 2018 Ya na altura da Expansys criei uma cena destas. Mas depois disso não fiz mais nada. Fiz foi uma extensão para o Chrome, mas isso é outra história. :P(que na realidade é o "mesmo", ou seja, JS) Link to comment Share on other sites More sharing options...
Perks Posted April 21, 2019 Author Share Posted April 21, 2019 Esta bookmarlet, pega num video do vsports e mete-o no streamable, e podem fazer o embed no FNF vSports Upload - Fazer upload dum video do vsports para o streamable este responde com um json {"status": 1, "shortcode": "ctn3l"} código javascript: (function() { var patt = /\/\/vsports\.videos\.sapo\.pt\/\w+\/mov/; var url = document.body.innerHTML.match(patt); if (url) { window.open('https://api.streamable.com/import?url=https:' + encodeURI(url), '_blank'); } void(0); })(); o video fica disponivel em streamable.com/ctn3l Link to comment Share on other sites More sharing options...
Perks Posted April 21, 2019 Author Share Posted April 21, 2019 Já agora, para relembrar se sincronizarem as bookmarks com o mobile (pelo menos no chrome) estas bookmarlets ficam disponíveis no telemóvel, pelo que conseguem meter um video no FNF praticamente sem gastar tráfego EX: Link to comment Share on other sites More sharing options...
Perks Posted April 22, 2019 Author Share Posted April 22, 2019 actualizada a bookamarklet para fazer check se consegue extrair o video e agora funciona nos vídeos da bola em https://abola.vsports.pt/ do record em https://record.vsports.pt/ e do jogo em https://ojogo.vsports.pt/ também, se preferirem têm a bookmarlet só para ver a source mp4 desses videos vSports open javascript: (function() { var patt = /\/\/vsports\.videos\.sapo\.pt\/\w+\/mov/; var url = document.body.innerHTML.match(patt); if (url) { window.open(encodeURI(url), '_blank'); } void(0); })(); Link to comment Share on other sites More sharing options...
Perks Posted April 28, 2019 Author Share Posted April 28, 2019 JSON Beautifier Spoiler javascript: (function() { function FormatJSON(oData, sIndent) { if (arguments.length < 2) { var sIndent = ""; } var sIndentStyle = " "; var sDataType = RealTypeOf(oData); console.log(sDataType); if (sDataType == "array") { if (oData.length == 0) { return "[]"; } var sHTML = "["; } else { var iCount = 0; $.each(oData, function() { iCount++; return; }); if (iCount == 0) { return "{}"; } var sHTML = "{"; } var iCount = 0; $.each(oData, function(sKey, vValue) { if (iCount > 0) { sHTML += ","; } if (sDataType == "array") { sHTML += ("\n" + sIndent + sIndentStyle); } else { sHTML += ("\n" + sIndent + sIndentStyle + "\"" + sKey + "\"" + ": "); } switch (RealTypeOf(vValue)) { case "array": case "object": sHTML += FormatJSON(vValue, (sIndent + sIndentStyle)); break; case "boolean": case "number": sHTML += vValue.toString(); break; case "null": sHTML += "null"; break; case "string": sHTML += ("\"" + vValue + "\""); break; default: sHTML += ("TYPEOF: " + typeof(vValue)); } iCount++; }); if (sDataType == "array") { sHTML += ("\n" + sIndent + "]"); } else { sHTML += ("\n" + sIndent + "}"); } return sHTML; } function SortObject(oData) { var oNewData = {}; var aSortArray = []; $.each(oData, function(sKey) { aSortArray.push(sKey); }); aSortArray.sort(SortLowerCase); $.each(aSortArray, function(i) { if (RealTypeOf(oData[(aSortArray[i])]) == "object") { oData[(aSortArray[i])] = SortObject(oData[(aSortArray[i])]); } oNewData[(aSortArray[i])] = oData[(aSortArray[i])]; }); return oNewData; function SortLowerCase(a, b) { a = a.toLowerCase(); b = b.toLowerCase(); return ((a < b) ? -1 : ((a > b) ? 1 : 0)); } } function RealTypeOf(v) { if (typeof(v) == "object") { if (v === null) return "null"; if (v.constructor == (new Array).constructor) return "array"; if (v.constructor == (new Date).constructor) return "date"; if (v.constructor == (new RegExp).constructor) return "regex"; return "object"; } return typeof(v); } if (typeof jQuery == "undefined") { var jQ = document.createElement("script"); jQ.type = "text/javascript"; jQ.onload = runthis; jQ.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"; document.body.appendChild(jQ); } else { runthis(); } function runthis() { var unformattedJSON = $(document).find("pre").text(); try { $(document).find("pre").text(FormatJSON(JSON.parse(unformattedJSON))); } catch (e) { window.console && console.log("Could not parse JSON: " + e.message + "; Perhaps this page isn't JSON?"); } } })(); Usava uma extensão para isto, já foi @Mini0n Link to comment Share on other sites More sharing options...
Perks Posted April 28, 2019 Author Share Posted April 28, 2019 já agora CSS Beautifier Spoiler javascript: (function() { (function() { function a(a, b) { function s(a) { return " " === a || "\n" === a || " " === a || "\r" === a || "\f" === a } function t(a) { return "'" === a || '"' === a } function u(a) { return h >= "a" && "z" >= h || h >= "A" && "Z" >= h || h >= "0" && "9" >= h || "-_*.:#".indexOf(a) >= 0 } function v() { var a; for (a = m; a > 0; a -= 1) g += c.indent } function w() { g = r(g), p ? g += " {" : (g += "\n", v(), g += "{"), "\n" !== i && (g += "\n"), m += 1 } function x() { var a; m -= 1, g = r(g), q && (a = g.charAt(g.length - 1), ";" !== a && "{" !== a && (g += ";")), g += "\n", v(), g += "}", f.push(g), g = "" } var c, f, h, i, j, k, l, m, n, o, r, d = 0, e = a.length, g = "", p = !0, q = !1; for (c = arguments.length > 1 ? b : {}, c.indent === void 0 && (c.indent = " "), "string" == typeof c.openbrace && (p = "end-of-line" === c.openbrace), "boolean" == typeof c.autosemicolon && (q = c.autosemicolon), r = String.prototype.trimRight ? function(a) { return a.trimRight() } : function(a) { return a.replace(/\s+$/, "") }, l = { Start: 0, AtRule: 1, Block: 2, Selector: 3, Ruleset: 4, Property: 5, Separator: 6, Expression: 7, URL: 8 }, m = 0, k = l.Start, o = !1, f = [], a = a.replace(/\r\n/g, "\n"); e > d;) if (h = a.charAt(d), i = a.charAt(d + 1), d += 1, t(n)) g += h, h === n && (n = null), "\\" === h && i === n && (g += i, d += 1); else if (t(h)) g += h, n = h; else if (o) g += h, "*" === h && "/" === i && (o = !1, g += i, d += 1); else if ("/" !== h || "*" !== i) { if (k === l.Start) { if (0 === f.length && s(h) && 0 === g.length) continue; if (" " >= h || h.charCodeAt(0) >= 128) { k = l.Start, g += h; continue } if (u(h) || "[" === h || "@" === h) { if (j = r(g), 0 === j.length) f.length > 0 && (g = "\n\n"); else if ("}" === j.charAt(j.length - 1) || ";" === j.charAt(j.length - 1)) g = j + "\n\n"; else for (;;) { if (i = g.charAt(g.length - 1), " " !== i && 9 !== i.charCodeAt(0)) break; g = g.substr(0, g.length - 1) } g += h, k = "@" === h ? l.AtRule : l.Selector; continue } } if (k !== l.AtRule) if (k !== l.Block) if (k !== l.Selector) if (k !== l.Ruleset) if (k !== l.Property) if (k !== l.Separator) if (k !== l.Expression) k === l.URL && ")" === h && g.charAt("\\" !== g.length - 1) ? (g += h, k = l.Expression) : g += h; else { if ("}" === h) { x(), k = l.Start, m > 0 && (k = l.Block); continue } if (";" === h) { g = r(g), g += ";\n", k = l.Ruleset; continue } if (g += h, "(" === h && "l" === g.charAt(g.length - 2) && "r" === g.charAt(g.length - 3) && "u" === g.charAt(g.length - 4)) { k = l.URL; continue } } else { if (!s(h)) { g += h, k = l.Expression; continue } t(i) && (k = l.Expression) } else { if (":" === h) { g = r(g), g += ": ", k = l.Expression, s(i) && (k = l.Separator); continue } if ("}" === h) { x(), k = l.Start, m > 0 && (k = l.Block); continue } g += h } else { if ("}" === h) { x(), k = l.Start, m > 0 && (k = l.Block); continue } if ("\n" === h) { g = r(g), g += "\n"; continue } if (!s(h)) { g = r(g), g += "\n", v(), g += h, k = l.Property; continue } g += h } else { if ("{" === h) { w(), k = l.Ruleset; continue } if ("}" === h) { x(), k = l.Start; continue } g += h } else { if (u(h)) { if (j = r(g), 0 === j.length) f.length > 0 && (g = "\n\n"); else if ("}" === j.charAt(j.length - 1)) g = j + "\n\n"; else for (;;) { if (i = g.charAt(g.length - 1), " " !== i && 9 !== i.charCodeAt(0)) break; g = g.substr(0, g.length - 1) } v(), g += h, k = l.Selector; continue } if ("}" === h) { x(), k = l.Start; continue } g += h } else { if (";" === h) { g += h, k = l.Start; continue } if ("{" === h) { j = r(g), w(), k = "@font-face" === j ? l.Ruleset : l.Block; continue } g += h } } else o = !0, g += h, g += i, d += 1; return g = f.join("") + g } "undefined" != typeof exports ? module.exports = exports = a : "object" == typeof window && (window.cssbeautify = a) })(); (function() { var e = /\blang(?:uage)?-(?!\*)(\w+)\b/i, t = self.Prism = { util: { type: function(e) { return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1] }, clone: function(e) { var n = t.util.type(e); switch (n) { case "Object": var r = {}; for (var i in e) e.hasOwnProperty(i) && (r[i] = t.util.clone(e[i])); return r; case "Array": return e.slice() } return e } }, languages: { extend: function(e, n) { var r = t.util.clone(t.languages[e]); for (var i in n) r[i] = n[i]; return r }, insertBefore: function(e, n, r, i) { i = i || t.languages; var s = i[e], o = {}; for (var u in s) if (s.hasOwnProperty(u)) { if (u == n) for (var a in r) r.hasOwnProperty(a) && (o[a] = r[a]); o[u] = s[u] } return i[e] = o }, DFS: function(e, n) { for (var r in e) { n.call(e, r, e[r]); t.util.type(e) === "Object" && t.languages.DFS(e[r], n) } } }, highlightAll: function(e, n) { var r = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'); for (var i = 0, s; s = r[i++];) t.highlightElement(s, e === !0, n) }, highlightElement: function(r, i, s) { var o, u, a = r; while (a && !e.test(a.className)) a = a.parentNode; if (a) { o = (a.className.match(e) || [, ""])[1]; u = t.languages[o] } if (!u) return; r.className = r.className.replace(e, "").replace(/\s+/g, " ") + " language-" + o; a = r.parentNode; /pre/i.test(a.nodeName) && (a.className = a.className.replace(e, "").replace(/\s+/g, " ") + " language-" + o); var f = r.textContent; if (!f) return; f = f.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\u00a0/g, " "); var l = { element: r, language: o, grammar: u, code: f }; t.hooks.run("before-highlight", l); if (i && self.Worker) { var c = new Worker(t.filename); c.onmessage = function(e) { l.highlightedCode = n.stringify(JSON.parse(e.data)); l.element.innerHTML = l.highlightedCode; s && s.call(l.element); t.hooks.run("after-highlight", l) }; c.postMessage(JSON.stringify({ language: l.language, code: l.code })) } else { l.highlightedCode = t.highlight(l.code, l.grammar); l.element.innerHTML = l.highlightedCode; s && s.call(r); t.hooks.run("after-highlight", l) } }, highlight: function(e, r) { return n.stringify(t.tokenize(e, r)) }, tokenize: function(e, n) { var r = t.Token, i = [e], s = n.rest; if (s) { for (var o in s) n[o] = s[o]; delete n.rest } e: for (var o in n) { if (!n.hasOwnProperty(o) || !n[o]) continue; var u = n[o], a = u.inside, f = !!u.lookbehind || 0; u = u.pattern || u; for (var l = 0; l < i.length; l++) { var c = i[l]; if (i.length > e.length) break e; if (c instanceof r) continue; u.lastIndex = 0; var h = u.exec(c); if (h) { f && (f = h[1].length); var p = h.index - 1 + f, h = h[0].slice(f), d = h.length, v = p + d, m = c.slice(0, p + 1), g = c.slice(v + 1), y = [l, 1]; m && y.push(m); var b = new r(o, a ? t.tokenize(h, a) : h); y.push(b); g && y.push(g); Array.prototype.splice.apply(i, y) } } } return i }, hooks: { all: {}, add: function(e, n) { var r = t.hooks.all; r[e] = r[e] || []; r[e].push(n) }, run: function(e, n) { var r = t.hooks.all[e]; if (!r || !r.length) return; for (var i = 0, s; s = r[i++];) s(n) } } }, n = t.Token = function(e, t) { this.type = e; this.content = t }; n.stringify = function(e) { if (typeof e == "string") return e; if (Object.prototype.toString.call(e) == "[object Array]") return e.map(n.stringify).join(""); var r = { type: e.type, content: n.stringify(e.content), tag: "span", classes: ["token", e.type], attributes: {} }; r.type == "comment" && (r.attributes.spellcheck = "true"); t.hooks.run("wrap", r); var i = ""; for (var s in r.attributes) i += s + '="' + (r.attributes[s] || "") + '"'; return "<" + r.tag + ' class="' + r.classes.join(" ") + '" ' + i + ">" + r.content + "</" + r.tag + ">" }; if (!self.document) { self.addEventListener("message", function(e) { var n = JSON.parse(e.data), r = n.language, i = n.code; self.postMessage(JSON.stringify(t.tokenize(i, t.languages[r]))); self.close() }, !1); return } var r = document.getElementsByTagName("script"); r = r[r.length - 1]; if (r) { t.filename = r.src; document.addEventListener && !r.hasAttribute("data-manual") && document.addEventListener("DOMContentLoaded", t.highlightAll) } })(); Prism.languages.css = { comment: /\/\*[\w\W]*?\*\//g, atrule: /@[\w-]+?(\s+[^;{]+)?(?=\s*{|\s*;)/gi, url: /url\((["']?).*?\1\)/gi, selector: /[^\{\}\s][^\{\}]*(?=\s*\{)/g, property: /(\b|\B)[a-z-]+(?=\s*:)/ig, string: /("|')(\\?.)*?\1/g, important: /\B!important\b/gi, ignore: /&(lt|gt|amp);/gi, punctuation: /[\{\};:]/g }; Prism.languages.markup && Prism.languages.insertBefore("markup", "tag", { style: { pattern: /(<|<)style[\w\W]*?(>|>)[\w\W]*?(<|<)\/style(>|>)/ig, inside: { tag: { pattern: /(<|<)style[\w\W]*?(>|>)|(<|<)\/style(>|>)/ig, inside: Prism.languages.markup.tag.inside }, rest: Prism.languages.css } } }); var prismStyle = document.createElement("style"); var beautified = cssbeautify(document.body.textContent, { autosemicolon: true }); var highlighted = Prism.highlight(beautified, Prism.languages.css); prismStyle.textContent = 'code[class*="language-"],pre[class*="language-"]{color:black;text-shadow:0 1px white;font-family:Consolas,Monaco,\'Andale Mono\',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none;}}pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto;}:not(pre) > code[class*="language-"],pre[class*="language-"]{background:#f5f2f0;}:not(pre) > code[class*="language-"]{padding:.1em;border-radius:.3em;}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray;}.token.punctuation{color:#999;}.namespace{opacity:.7;}.token.property,.token.tag,.token.boolean,.token.number{color:#905;}.token.selector,.token.attr-name,.token.string{color:#690;}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5);}.token.atrule,.token.attr-value,.token.keyword{color:#07a;}.token.regex,.token.important{color:#e90;}.token.important{font-weight:bold;}.token.entity{cursor:help;}'; document.head.innerHTML = ""; document.head.appendChild(prismStyle); document.body.innerHTML = "<code><pre>" + highlighted + "</pre></code>" })(); Link to comment Share on other sites More sharing options...
Mini0n Posted April 28, 2019 Share Posted April 28, 2019 Porque não usar uma extensão? Link to comment Share on other sites More sharing options...
Perks Posted April 28, 2019 Author Share Posted April 28, 2019 Uma extensão está sempre a ouvir em background, e portanto terá acesso ao teu histórico, por exemplo. Está sempre a funcionar, consumindo recursos Não funciona em mobile Link to comment Share on other sites More sharing options...
Mini0n Posted April 28, 2019 Share Posted April 28, 2019 Queres ver JSON ou CSS em mobile porquê, mesmo? Não é um parser destes que me vai atrasar o browser nem consumir recursos. O que uso está no Github. Sei o que ele faz. Link to comment Share on other sites More sharing options...
Perks Posted April 29, 2019 Author Share Posted April 29, 2019 só vi isto agora Eu uso no telefone, 99% do que faço é no telefone. como sabes o php ou os embeds na altura forma tratados no telefone como vês é bem diferente ^ Link to comment Share on other sites More sharing options...
Mini0n Posted April 29, 2019 Share Posted April 29, 2019 Mas isso és tu lol Eu uso o JSON para trabalho pá. Also, a extensão que uso tem cores. Dá para distinguir strings de inteiros de booleans mais rapidamente, por exemplo. Mas ya, para merdas simples, acredito que dê jeito. E se não há extensões no Android, sempre é melhor que andar com copy/paste para sites que fazem isso. Link to comment Share on other sites More sharing options...
Perks Posted April 29, 2019 Author Share Posted April 29, 2019 a que usava também estava no github, e tinha os highlights e essa cenas. mas o meu o pc tem menos RAM que o meu telefone por isso onde puder poupar em recursos agradeço lol Link to comment Share on other sites More sharing options...
Perks Posted June 12, 2019 Author Share Posted June 12, 2019 os vídeos do record irritam-em profundamente, portanto javascript: (function() { var patt = 'https\:\/\/rrr\.streaming\.claranet\.pt\/(.+\=mp4)'; var url = document.body.innerHTML.match(patt)[1]; var url1 = url.replace(/&/g, "&"); if (url) { window.open('https://rrr.streaming.claranet.pt/' + url1, '_blank'); } void(0); })(); isto abre num separador o raw mp4 dos videos do grup cofina (record, sabado ou cm por exemplo) Sem gastar tráfego no telefone juntado com a bookmarlet do streamable por exemplo, conseguem meter um video embed no fnf sem gastar tráfego Link to comment Share on other sites More sharing options...
Perks Posted June 17, 2019 Author Share Posted June 17, 2019 já agora, Grupo Global Media Ojogo, JN, DN etc javascript: (function() { var patt = /(https\:\/\/\w+\.cloudfront\.net\/.+\/)(.+)\/hls\/.+\.m3u8/; var url1 = document.body.innerHTML.match(patt)[1]; var url2 = document.body.innerHTML.match(patt)[2]; if (url1 && url2) { window.open(url1 + url2 + '/mp4/' + url2 + '.mp4', '_blank'); } void(0); })(); Link to comment Share on other sites More sharing options...
Perks Posted June 17, 2019 Author Share Posted June 17, 2019 depois disto, estive aqui a pensar em fazer algo que juntasse os videos todos numa mesma bookmarlet esta bookmarlet, saca o mp4 dos videos alojados nos seguintes sites record, cmjornal, sabado, ojogo, a bola, DN, JN, TSF, vsports, vsports dos desportivos (jogo, bola, record) e penso que deve ser isso javascript: (function() { if (window.location.href.match('https?\:\/\/(www.)?(record|cmjornal|sabado)\.pt')) { var patt = 'https\:\/\/rrr\.streaming\.claranet\.pt\/(.+\=mp4)'; var url = document.body.innerHTML.match(patt)[1]; var url1 = url.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); if (url) { window.open('https://rrr.streaming.claranet.pt/' + url1, '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/((www|ojogo|abola|record).)?(vsports)\.pt')) { var patt = /\/\/vsports\.videos\.sapo\.pt\/\w+\/mov/; var url = document.body.innerHTML.match(patt); if (url) { window.open(encodeURI(url), '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/(www.)?(ojogo|jn|dn|tsf)\.pt')) { var patt = /(https\:\/\/\w+\.cloudfront\.net\/.+\/)(.+)\/hls\/.+\.m3u8/; var url1 = document.body.innerHTML.match(patt)[1]; var url2 = document.body.innerHTML.match(patt)[2]; if (url1 && url2) { window.open(url1 + url2 + '/mp4/' + url2 + '.mp4', '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/miragens\.abola\.pt\/video\/.+')) { var patt = 'https?\:\/\/miragens\.abola\.pt\/video\/(.+)'; var url = window.location.href.match(patt)[1]; window.open ('https://miragens.abola.pt/processaVideo.ashx?id='+url); void(0); } })(); se faltar algum ou se quiserem que adicione algum, avisem já agora lembrando que juntamente com a do streamable que está no primeiro post conseguem meter o video no streamable para meterem no fnf sem sequer gastar trafego no telefone Link to comment Share on other sites More sharing options...
Perks Posted June 17, 2019 Author Share Posted June 17, 2019 Link to comment Share on other sites More sharing options...
Perks Posted July 3, 2019 Author Share Posted July 3, 2019 actualização a este para incluir grupo impresa ^ javascript: (function() { if (window.location.href.match('https?\:\/\/(www.)?(record|cmjornal|sabado)\.pt')) { var patt = 'https\:\/\/rrr\.streaming\.claranet\.pt\/(.+\=mp4)'; var url = document.body.innerHTML.match(patt)[1]; var url1 = url.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); if (url) { window.open('https://rrr.streaming.claranet.pt/' + url1, '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/((www|ojogo|abola|record).)?(vsports)\.pt')) { var patt = /\/\/vsports\.videos\.sapo\.pt\/\w+\/mov/; var url = document.body.innerHTML.match(patt); if (url) { window.open(encodeURI(url), '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/(www.)?(ojogo|jn|dn|tsf)\.pt')) { var patt = /(https\:\/\/\w+\.cloudfront\.net\/.+\/)(.+)\/hls\/.+\.m3u8/; var url1 = document.body.innerHTML.match(patt)[1]; var url2 = document.body.innerHTML.match(patt)[2]; if (url1 && url2) { window.open(url1 + url2 + '/mp4/' + url2 + '.mp4', '_blank'); } void(0); } if (window.location.href.match('https?\:\/\/miragens\.abola\.pt\/video\/.+')) { var patt = 'https?\:\/\/miragens\.abola\.pt\/video\/(.+)'; var url = window.location.href.match(patt)[1]; window.open('https://miragens.abola.pt/processaVideo.ashx?id=' + url); void(0); } if (window.location.href.match('https?\:\/\/(sicnoticias|expresso|tribunaexpresso)\.pt')) { var patt = /\/\/videos\.impresa\.pt\/[^"]+/; var url1 = document.body.innerHTML.match(patt); if (url1) { window.open('https:' + url1, '_blank'); } void(0); } })(); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now