Escobar Дорогой друг, а почини букмарклет))
Заодно (как идея) в него добавить форматирование по обменам с групировкой по неделям и обменникам, как раз для розыгрышей😉,
Чтобы в один клик например скопировать "обмены с суммой" , с одного обменника за всё время с понедельника
Как идея 💡 ?
С новым дизайном теперь каждую ID заявки надо в диалог заходить копировать.... , раньше хоть всю таблицу можно было выделить, да лишнее стереть...
Для покупки закладок свой букмарклет, а для обменов - отдельный - объединять не знаю..,странно
,хотя если не хватает на балансе можно вместо купить вести на какой-то из обменников но все максимально уважительно к прайваси сделанно, и никакие переходы будет не отследить,а простой рефералки тут нету никакой =!<
@BlackSprutExchange @mat_Tereza @Escobar
я захожу на страницу обменов - тыкаю по букмарклету на панели закладок браузера и далее:
- берутся только выполненные обмены
- только из 🦄 🐙🔥 обменников для конкурса этой ветки
- только за текущую неделю
- данные сначала показывается в красивой табличке - клик по ней закрывает диалоговое окно
- нужные нам данные в правильном для конкурса формате - уже в буфере обмена
- заходим в ветку конкурса
ctrl+v
js code ниже под спойлером или по ссылке: https://bookmarklets.torsha.re/BlackSprutExchange.js
javascript: (function () {
if(!document.location.pathname.startsWith("/my/exchanges")) {
window.location.replace(document.location.origin+"/my/exchanges")
}
var me = prompt("Enter your username:") || "username";
const xlist={25:"🐙",27:"🦄",26:"🔥"};
const today = new Date();
const dayOfWeek = today.getDay();
const firstDayOfWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - (dayOfWeek - 1));
const lastDayOfWeek = new Date(firstDayOfWeek.getFullYear(), firstDayOfWeek.getMonth(), firstDayOfWeek.getDate() + 6);
const daysOfWeek = [];
for (let i = firstDayOfWeek.getDate(); i <= lastDayOfWeek.getDate(); i++) {
daysOfWeek.push(i);
}
console.log(daysOfWeek);
const month = new Date().getMonth() + 1;
const formattedDaysOfWeek = [];
for (let day of daysOfWeek) {
formattedDaysOfWeek.push(
${day}/${month});
}
console.log(formattedDaysOfWeek);
function extractIdFromUrl(url) {
let match = url.match(/\/(\d+)$/);
return match ? match[1] : null;
}
let rows = document.querySelectorAll('table tr:not(:first-child)');
let data = [];
console.log(rows)
rows.forEach(row => {
if (formattedDaysOfWeek.includes(row.querySelector('td:nth-child(4)').innerText.split(" в ")[0].replace(',', '').trim())) {
if (row.querySelector('td:nth-child(3)').textContent.trim().includes('ып')) {
let xidUrl = row.querySelector('td:nth-child(1) a:first-child').href;
let idUrl = row.querySelector('td:nth-child(5) a:first-child').href;
let id = extractIdFromUrl(idUrl);
let xid = extractIdFromUrl(xidUrl);
let sum = row.querySelector('td:nth-child(2)').textContent.trim();
if(xid in xlist) {
data.push({id, sum, xid});
}
}
}
});
if (data.length) {
let modal = document.createElement('div');
modal.style = 'position:fixed;top:0;left:0;width:100%;height:100%;background: rgba(0,0,0,0.5);color:#fff;z-index:10000;display:flex;justify-content:center;align-items:center;';
let modalContent = '<div style="font-family:monospace;font-size:2em;background:#570075;padding-left:20px;padding-right:20px;border-radius:10px;">Обмены за неделю: <pre id="exchanges" style="margin-bottom:0px;margin-top:0px">';
data.forEach(item => {
modalContent +=
${xlist[item.xid]} ${me} ${item.id} ${item.sum}\n;
});
modalContent += '</pre><sup><a style="text-decoration:none;font-size:10pt;color:#3a0052;" href="https://bookmarklets.torsha.re/BlackSprutExchange.html">BlackSprutExchange bookmarklet by Armageddonist</a></sup></div>';
modal.innerHTML = modalContent;
document.body.appendChild(modal);
modal.onclick = function () {
navigator.clipboard.writeText(modal.querySelector("#exchanges").innerText);
document.body.removeChild(modal);
};
} else {
alert('Нет обменов за текущую неделю со статусом "Выполнен".');
}
})();
страница установки (откуда легко просто перетащить ссылку):
https://bookmarklets.torsha.re/BlackSprutExchange.html
код в одну строку: javascript:(function(){if(!document.location.pathname.startsWith('/my/exchanges')){window.location.replace(document.location.origin+'/my/exchanges')};var me=prompt('Enter your psrms username:')||'username';const xlist={25:'🐙',27:'🦄',26:'🔥'};const today=new Date();const dayOfWeek=today.getDay();const firstDayOfWeek=new Date(today.getFullYear(),today.getMonth(),today.getDate()-(dayOfWeek-1));const lastDayOfWeek=new Date(firstDayOfWeek.getFullYear(),firstDayOfWeek.getMonth(),firstDayOfWeek.getDate()+6);const daysOfWeek=[];for(let i=firstDayOfWeek.getDate();i<=lastDayOfWeek.getDate();i++){daysOfWeek.push(i);};console.log(daysOfWeek);const month=new Date().getMonth()+1;const formattedDaysOfWeek=[];for(let day of daysOfWeek){formattedDaysOfWeek.push(
${day}/${month});};console.log(formattedDaysOfWeek);function extractIdFromUrl(url){let match=url.match(/\/(\d+)$/);return match?match[1]:null;};let rows=document.querySelectorAll('table tr:not(:first-child)');let data=[];console.log(rows);rows.forEach(row=>{if(formattedDaysOfWeek.includes(row.querySelector('td:nth-child(4)').innerText.split(' в ')[0].replace(',','').trim())){if(row.querySelector('td:nth-child(3)').textContent.trim().includes('ып')){let xidUrl=row.querySelector('td:nth-child(1) a:first-child').href;let idUrl=row.querySelector('td:nth-child(5) a:first-child').href;let id=extractIdFromUrl(idUrl);let xid=extractIdFromUrl(xidUrl);let sum=row.querySelector('td:nth-child(2)').textContent.trim();if(xid in xlist){data.push({id,sum,xid});}}}});if(data.length){let modal=document.createElement('div');modal.style='position:fixed;top:0;left:0;width:100%;height:100%;background: rgba(0,0,0,0.5);color:#fff;z-index:10000;display:flex;justify-content:center;align-items:center;';let modalContent='<div style="font-family:monospace;font-size:2em;background:#570075;padding-left:20px;padding-right:20px;border-radius:10px;">Обмены за неделю: <pre id=\'exchanges\' style=\'margin-bottom:0px;margin-top:0px\'>';data.forEach(item=>{modalContent+=
${xlist[item.xid]} ${me} ${item.id} ${item.sum}\n;});modalContent+='</pre><sup><a style=\'text-decoration:none;font-size:10pt;color:#3a0052;\' href=\'https://bookmarklets.torsha.re/BlackSprutExchange.html\'>BlackSprutExchange bookmarklet by Armageddonist</a></sup></div>';modal.innerHTML=modalContent;document.body.appendChild(modal);modal.onclick=function(){navigator.clipboard.writeText(modal.querySelector('#exchanges').innerText);document.body.removeChild(modal);};}else{alert('Нет обменов за текущую неделю со статусом \'Выполнен\'.');}})();
!<
вот что получилось у меня:
🦄 Armageddonist 13225413 5388₽