Skocz do zawartości
1 maja :: Święto Pracy / 2 maja :: Dzień Flagi / 3 maja :: Święto Konstytucji
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Cześć,

 

Napisałem bota w javascript, który łapie przedmioty w określonej przecenie, dodaje do koszyka i płaci. Natomiast mam problem z bazą danych skin port, a raczej api skinport. Problem polega na tym, że po uruchomieniu skryptu, baza się nie odświeża o nowo dodane przedmioty na markecie, działa już na tych przedmiotach, przy których uruchomiłem skrypt. Jakby ktoś znał się na tym chętnie przygarne pomoc $$$

Odnośnik do komentarza
const puppeteer = require('puppeteer-extra');

const StealthPlugin = require('puppeteer-extra-plugin-stealth');

const { promisify } = require('util');

const sleep = promisify(setTimeout);

const axios = require('axios');



const clientId = '';

const clientSecret = '';

const encodedData = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');

const authorizationHeaderString = `Basic ${encodedData}`;



const link = 'https://skinport.com/market?sort=date&order=desc';

const low_price = 50;

const high_price = 100;

const item_set = new Set();

let cart = false;

let lastProcessedTime = Math.floor(Date.now() / 1000); // Inicjalizacja czasu ostatniego przetwarzania jako aktualny czas w sekundach



const REQUEST_DELAY = 20; // Opóźnienie między kolejnymi żądaniami w milisekundach

const ITEMS_REQUEST_INTERVAL = 6000; // Interwał między żądaniami pobierania przedmiotów w milisekundach



(async () => {

puppeteer.use(StealthPlugin());

const browser = await puppeteer.launch({

executablePath: '',

headless: false,

userDataDir: ;,

});



const page = await browser.newPage();



await page.goto(link);



while (true) {

try {

const items = await getItems();



if (items && Array.isArray(items) && items.length > 0) {

const newItems = items.filter(item => item.created_at > lastProcessedTime); // Filtrujemy tylko nowo dodane przedmioty



for (const item of newItems) {

const clean_data = item.market_hash_name;

const price = item.suggested_price;

const discount = parseInt(item.discount);

const discountPercentage = (1 - item.min_price / item.suggested_price) * 100;

const quantity = item.quantity;



console.log(price);



try {

if (discountPercentage > 26 && !item_set.has(clean_data) && price > low_price && price < high_price && quantity > 0) {

item_set.add(clean_data);

console.log(clean_data);

cart = true;



// Dodaj przedmiot do koszyka

await addToCart(page, item);



// Kontynuuj proces płatności

//await checkout(page);

}

} catch (error) {

// Ignoruj błąd

}



await sleep(REQUEST_DELAY);

}



lastProcessedTime = Math.max(...newItems.map(item => item.created_at)); // Aktualizujemy czas ostatniego przetwarzania na najnowszy czas z nowo dodanych przedmiotów

} else {

console.log('Błąd pobierania przedmiotów: nieprawidłowa struktura danych');

}

} catch (error) {

console.log('Błąd podczas pobierania przedmiotów:', error);

}



await sleep(ITEMS_REQUEST_INTERVAL);

await page.reload(); // Odświeżanie strony przed kolejnym żądaniem

}



await browser.close();

})();



const getItems = async () => {

const apiUrl = 'https://api.skinport.com/v1/items';

const queryParams = {

app_id: 730,

currency: 'PLN',

tradable: false,

};



try {

const response = await axios.get(apiUrl, {

params: queryParams,

headers: {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',

Authorization: authorizationHeaderString,

},

});



// Przetwarzaj odpowiedź i pobieraj dane

const items = response.data;



return items;

} catch (error) {

console.log('Błąd podczas pobierania przedmiotów:', error);

throw error;

}

};



const addToCart = async (page, item) => {

await page.goto(item.item_page);

await sleep(1000);

await page.click('.ItemPage-btns button');

await sleep(1000);

};



const checkout = async (page) => {

await page.goto('https://skinport.com/cart');

await sleep(1000);

await page.click('#cb-tradelock-1');

await page.click('#cb-cancellation-2');

await page.click('.CartSummary-checkoutBtn');

await sleep(1000);

const cardNum = await page.$('.adyen-checkout__card__cardNumber__input');

const expiryDate = await page.$('.adyen-checkout__card__exp-date__input');

const cvv = await page.$('.adyen-checkout__card__cvc__input');

const pay = await page.$('.adyen-checkout__button--pay');



const cardNumValue = '5';

const expiryDateValue = '';

const cvvValue = '';



await cardNum.click();

await cardNum.type(cardNumValue);

await expiryDate.click();

await expiryDate.type(expiryDateValue);

await cvv.click();

await cvv.type(cvvValue);

await pay.click();

await sleep(3000);

};

@Czarny i tak sobie mysle, że chyba w złą strone poszedłem, bo api poprostu celowo robi takie ograniczenia...

Odnośnik do komentarza

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  Tagi

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności