您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auto-DL
// ==UserScript== // @name BIhelper // @version 1.2 // @grant GM_download // @grant GM_addStyle // @namespace https://greasyfork.org/users/290665 // @description Auto-DL // @include https://www.berlinintim.de/* // ==/UserScript== $(function() { addstyle(); var NAME = $('title') .text() .replace(/ +$/,''); var PHONE = $('.telefon_button').last().attr('href'); PHONE = PHONE .replace(/^javascript:.*/i,'') .replace(/^#/i,'') .replace(/tel:/,'') .replace(/\+49 */,'0') .replace(/ \/ /,'-') .replace(/ +/,'-'); NAME = NAME.replace(/(Privatmodell|(Highclass-)?Escort|Gastmodell|Transsexuelle)\s*/ig,''); NAME = NAME.replace(/[^\w-\(\)äöüÄÖÜß ]/g,''); var name = NAME + (PHONE?' - ' + PHONE:''); var dlArea = $('<div id="BIhelper"></div>'); $('<button title="download '+name+'"><span class="material-icons md-18">download</span></b></button>') .data('name',name) .on('click', function(event) { downloadAll($(event.currentTarget).data('name')); }).appendTo(dlArea); $('<button title="copy text"><span class="material-icons md-18">content_copy</span></b></button>') .on('click', function(event) { navigator.clipboard.writeText(adData()); $("<div>OK</div>").appendTo($(this)) .delay(2000).fadeOut(1000, function() { $(this).remove(); }); }).appendTo(dlArea); $(dlArea).find("button").addClass("head_btn"); $(dlArea).find('button'); $('.hl_date').first().append(dlArea); }); function downloadAll(name) { let downloadlist = []; $('img.slider_img').each(function() { var link = $(this).attr('src'); if (link.length) { downloadlist.push(link.replace(/\?.*/,'')); } }); let listUnique = [...new Set(downloadlist)]; startDownload(name,listUnique); } function startDownload(path,downloadlist) { var dialog = $('<div id="BIhelperdialog" title="Download to '+path+' ..."></div>').appendTo($('#BIhelper')); for (let URL of downloadlist) { var name = URL.replace(/.*\//,''); var file = path.replace(/[^\w-\(\)äöüÄÖÜß ]/g,'')+'/'+name; URL = URL.replace(/^\/\//,'https://'); var line = $('<div class="BIDL" data-name="'+name+'">'+name+'</div>').appendTo(dialog); (function(url,filepath,filename,linediv) { var dl = GM_download({ url: url, name: filepath, saveAs: false, onerror: function(err){ console.error(err); $(linediv).append('<span class="download_error">ERROR: '+err.error+' - '+err.details+'</span>') .delay(2000).fadeOut(1000, function() { $(this).remove(); }); }, onload: function() { $(linediv).append('<span class="download_ok">✓</span>') .delay(2000).fadeOut(1000, function() { $(this).remove(); }); }, }); })(URL,file,name,line); } } function adData() { let name = $('h1.ellipsis').text(); let subheader = ""; let text = ""; $('.sedcard_facts_modell .blocktext_hl').each(function(undefined,el) { let key = $(el).text().trim(); let val = $(el).nextUntil('.blocktext_hl').find("*").addBack().contents() .filter(function() { return (this.nodeType === 3) && ($(this).text().match(/\w/i)); }) .map(function() { return $(this).text().trim().replace(/\u00A0/,' ') }).get().join(", "); if (key && val) text += $(el).text().trim() + " [B]" + val + "[/B]\n"; }); $('div.block_teaser .blocktext_hl').each(function(undefined,el) { let key = $(el).text().trim(); let val = $(el).nextUntil('.blocktext_hl').find("*").not(".sternchentext").addBack().contents() .filter(function() { return (this.nodeType === 3) && ($(this).text().match(/\w/i)); }) .map(function() { return $(this).text().trim().replace(/\u00A0/,' ') }).get().join(", "); if (key && val) text += $(el).text().trim() + " [B]" + val + "[/B]\n"; }); let stbr = []; $("h2:contains(Mein Steckbrief)").parent().parent().parent().find('.block_teaser div.row').each(function(undefined,el) { let key = $(el).children("div").eq(0).text().replace(/\u00A0/,' ').trim(); let val = $(el).children("div").eq(1).text().replace(/\u00A0/,' ').trim(); if (key && val) stbr.push(`${key}: [B]${val}[/B]`); }); text += stbr.join(", "); let URL = window.location.href; let address = $('#adress_0 > div').first().contents().filter(function() { return (this.nodeType === 3) && ($(this).text().match(/\w/i)); }).map(function() { return $(this).text().trim().replace(/\u00A0/,' ') }).get().join(", "); let gmap_address = encodeURIComponent(address); let adressdetail = $('#adressdetail0').text().trim(); // let service = $('div.tablet-info-service').html() // .replace(/\n/g,'') // .replace(/<(\/)?h2>/g,'[$1B]') // .replace(/\[B\]/g,'\n[B]') // .replace(/\[\/B\]/g,':[/B]'); // let languages = ''; let dataHTML = "Infoservice\n" +`[QUOTE][URL=${URL}][SIZE="3"][B]${name}[/B][/SIZE]\n` +`${subheader}[/URL]` +`[SIZE="1"]\n${text}\n\n` // +`[B]Telefon:[/B] [SIZE="3"]${phone}[/SIZE], ${phone2}, ${phone3}\n` +`[B]Adresse:[/B] [URL=https://www.google.de/maps/place/${gmap_address}]${address}[/URL] ${adressdetail}` // +`${service}\n` +`[/SIZE][/QUOTE]`; dataHTML = dataHTML.replace(/ {2,}/g,' ').replace(/\n{3,}/,'\n\n'); //console.log(dataHTML); return dataHTML; } function addstyle() { $('head').append('<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">'); GM_addStyle(` #BIhelper { max-height: 150px; overflow: auto; font-size: 10px; position: absolute; right: 10px; top: 11px; z-index: 100; } #BIhelper button { padding: 5px 10px; background-color: #980403; color: #fff; border: none; margin-left: 8px; position: relative; overflow: visible; } .BIDL { background-color: black; } .download_error { color: white; background-color: #880010; padding: 1px 4px; border-radius: 2px; margin: 0px 4px; } .download_ok { color: white; background-color: #10a020; padding: 1px 4px; border-radius: 2px; margin: 0px 4px; } `); }