April 25, 2022
[v0.0.3] Скрипт отслеживания новых NFT на letmespeak.org - LMS_tracker
Зачем? - спросите вы. Затем - отвечу вам я.
Текущая версия - v0.0.3 (25.04)
Каждые 30сек скрипт получает nft с первой страницы с сортировкой "по возрастанию цены". Персонажи подгружаются с редкостью "Common". Когда появляются новые нфт, то они выделятся зеленым.
В процессе разработки:
- звуковое уведомление при появлении новых nft
- выбор редкости, которую подгружать
- более удобное отображение карточек
- Открой страницу https://market.letmespeak.org/
- Открой dev tool (Ctrl+Shift+J (on Windows) or Ctrl+Option+J (on Mac))
- Выбери вкладку Console, вставь туда код и нажми Enter
let lastItemsList=[];function sendFetch(){let e=[];fetch("https://api-crypto.letmespeak.org/api/escrow?sortBy=LowestPrice&page=1&rarity=2").then(t=>t.json()).then(t=>{e.push(t.items),e=e.reduce((t,e)=>t.concat(e)),function(t){let s=[];t.forEach(t=>{let e,a="",i=t.nft.details.attributes;e=!lastItemsList.includes(t.id),s.push(t.id),i.forEach(t=>{["talent","invites_left"].includes(t.trait_type)&&(a+=' <div class="ant-col"> <div class="ml025"> <span>'+t.trait_type+'</span> <div class="Attribute_value__ENcJL Attribute_compact__eY5_v">'+t.value+"</div> </div> </div> ")}),document.querySelector(".ant-row-stretch").insertAdjacentHTML("beforeend",' <style> .UICard_root__AlKWx {flex-direction: row;} .NFTListItem_avatar__3UTOV {max-width: 80px;} .ant-col-md-8 {flex: 0 0 100%; max-width: unset;} .ant-col-xs-12 {flex: 0 0 33% !important; max-width: unset; } .ant-col-lg-18 { flex: 0 0 100%; max-width: unset; } .ant-col.ant-col-xs-24.ant-col-lg-6{display:none} .UICard_root__AlKWx{padding: 0;} </style> <a href="https://market.letmespeak.org/#/escrow/'+t.id+'" class="card-item ant-col ant-col-xs-12 ant-col-md-8" style="padding-left: 8px; padding-right: 8px; '+(e?"background: rgba(143, 255, 143, .6);":"")+'"> <div class="UICard_root__AlKWx NFTListItem_root__3JXf3 pointer" style="align-items: stretch; justify-content: flex-start;"> <div class="NFTListItem_avatar__3UTOV"> <div class="UIAvatar_root__2sNIr"> <div class="fg-1"> <div class="ant-image"> <img alt="#860086" class="ant-image-img UIAvatar_img__kHF3R" src="'+t.nft.details.image+'" data_yuid="L2BMAWNS6RW0JHCASKT"> </div> </div> </div> </div> <div class="mt05"> <div class="ant-row ant-row-center" style="row-gap: 4px;"> <div class="ant-col"> <div class="ml025" style="color:rgb(255, 122, 0);"> <span>Виза</span> <div class="Attribute_value__ENcJL Attribute_compact__eY5_v">'+i[8].value+"/"+i[7].value+"</div> </div> </div> "+a+' <div class="ant-col"> <div class="ml025" style="color:rgb(39, 117, 202);"> <span>price</span> <div class="Attribute_value__ENcJL Attribute_compact__eY5_v">'+t.price+"</div> </div> </div> </div> </div> </div> </a> ")}),document.querySelector(".ant-row-stretch").insertAdjacentHTML("beforeend",'<div class="card-time-download" style="width:100%">'+(new Date).toUTCString()+"</div>"),lastItemsList=s,s=[]}(e)})}document.querySelector(".ant-row-stretch ").innerHTML="";let counterForTimer=0,timerFetchItems=setTimeout(function t(){10<counterForTimer&&(document.querySelectorAll(".card-item").forEach((t,e)=>{e<=22&&t.remove()}),document.querySelectorAll(".card-time-download")[0].remove()),counterForTimer+=1,sendFetch(),timerFetchItems=setTimeout(t,3e4)},0);Итого:Следить за обновлениями скрипта можно на канале https://t.me/letcryptoWalk