opensea-scraper icon indicating copy to clipboard operation
opensea-scraper copied to clipboard

[BUG] Cannot get price

Open 0xMarsRover opened this issue 2 years ago • 6 comments

Hi,

I used two scripts below for getting prices of nfts, but all failed. I remembered that I can get prices by using function "offers" or "offersByUrl" before, but they do not work now. Script 1: let result_testnet = await OpenseaScraper.offersByUrl("https://testnets.opensea.io/collection/doodles-officias", options); console.dir(result_testnet, {depth: null}); // result object contains keys stats and offers image

Script 2: let result = await OpenseaScraper.offers(nft, options); console.dir(result, {depth: null}); // result object contains keys stats and offers image

Any suggestions for that? Thanks.

0xMarsRover avatar Jul 13 '22 14:07 0xMarsRover

thanks a lot, its a bug, working on it.

dcts avatar Jul 13 '22 22:07 dcts

Thanks for your response. I think opensea website Could have updates somewhere.

0xMarsRover avatar Jul 13 '22 22:07 0xMarsRover

So opensea changed some variable names in their __wired__ variable (we get the prices from that variable).

I noticed that quantityInEth is not longer availible. Instead only quantity seems to exist.

// doesnt work anymore
Object.values(__wired__.records)
    .filter(o => o.__typename === "AssetQuantityType")
    .filter(o => o.quantityInEth) // ❌ this breaks

// seems to work 
Object.values(__wired__.records)
    .filter(o => o.__typename === "AssetQuantityType")
    .filter(o => o.quantity) // returns something but with wrong mapping

Unfortunately simply chaning this does NOT fix the issue, because the mapping is off. This needs more investigation. Leaving my findings here for now.

dcts avatar Jul 13 '22 22:07 dcts

So opensea changed some variable names in their __wired__ variable (we get the prices from that variable).

I noticed that quantityInEth is not longer availible. Instead only quantity seems to exist.

// doesnt work anymore
Object.values(__wired__.records)
    .filter(o => o.__typename === "AssetQuantityType")
    .filter(o => o.quantityInEth) // ❌ this breaks

// seems to work 
Object.values(__wired__.records)
    .filter(o => o.__typename === "AssetQuantityType")
    .filter(o => o.quantity) // returns something but with wrong mapping

Unfortunately simply chaning this does NOT fix the issue, because the mapping is off. This needs more investigation. Leaving my findings here for now.

Is there any updates on this issue? Thanks

0xMarsRover avatar Aug 05 '22 09:08 0xMarsRover

I currently don't have time to fix this. I have it on my todo list, but I cannot promise nor predict any timeline.

dcts avatar Aug 05 '22 10:08 dcts

Thnaks for your reply.

I currently don't have time to fix this. I have it on my todo list, but I cannot promise nor predict any timeline.

0xMarsRover avatar Aug 05 '22 10:08 0xMarsRover

I did some investigations on Opensea website abnd made some changes on source code. Now it seems work.

const floorPrices = Object.values(__wired__.records)
  .filter(o => o.__typename === "PriceType" && o.eth && o.unit && o.usd)
  .filter(o => o.eth)
  .map(o => {
    return {
      amount: o.eth,
      currency: 'ETH',
    }
  });

0xMarsRover avatar Aug 16 '22 14:08 0xMarsRover

I did some investigations on Opensea website abnd made some changes on source code. Now it seems work.

const floorPrices = Object.values(__wired__.records) .filter(o => o.__typename === "PriceType" && o.eth && o.unit && o.usd) .filter(o => o.eth) .map(o => { return { amount: o.eth, currency: 'ETH', } }); image

this works!! thank you!

ankerbachryhl avatar Aug 19 '22 05:08 ankerbachryhl

thanks @kaiqiangh for the fix! I adapted it in the new version 6.5.2. To adapt please use version 6.5.2:

npm install [email protected]

or alternatively if you have it already installed upgrade to latest version

npm upgrade

Thank you! ♥️

dcts avatar Aug 19 '22 07:08 dcts

thanks @kaiqiangh for the fix! I adapted it in the new version 6.5.2. To adapt please use version 6.5.2:

npm install [email protected]

or alternatively if you have it already installed upgrade to latest version

npm upgrade

Thank you! ♥️

All good! Thanks!

0xMarsRover avatar Aug 19 '22 09:08 0xMarsRover