Projetos
Warframe Market Sniper REST API
Código-fonte que realiza o cruzamento de dados e a filtragem de atividade dos usuários:
import requests
def buscar_vendedores_v2(item_slug):
url = f"https://api.warframe.market/v2/orders/item/{item_slug}"
headers = {
'Platform': 'pc',
'Crossplay': 'true',
'Language': 'en'
}
try:
resposta = requests.get(url, headers=headers, timeout=10)
except requests.exceptions.RequestException:
return {}
if resposta.status_code != 200:
return {}
ordens = resposta.json().get('data', [])
vendedores = {}
for ordem in ordens:
if ordem.get('type') == 'sell':
user = ordem.get('user', {})
status = user.get('status')
if status in ['ingame', 'online']:
username = user.get('ingameName') or user.get('ingame_name')
preco = ordem.get('platinum')
if username and preco:
if username not in vendedores or preco < vendedores[username]:
vendedores[username] = preco
return vendedores
def buscar_multiplos_itens(*lista_slugs):
dados_por_item = {}
for slug in lista_slugs:
vendedores = buscar_vendedores_v2(slug)
if not vendedores:
return
dados_por_item[slug] = vendedores
# Interseção de conjuntos para encontrar o vendedor perfeito
conjuntos_usuarios = [set(vendedores.keys()) for vendedores in dados_por_item.values()]
usuarios_em_comum = set.intersection(*conjuntos_usuarios)
if not usuarios_em_comum:
return
for user in usuarios_em_comum:
total_platina = 0
print(f"\n👤 Vendedor: {user}")
for slug in lista_slugs:
preco_item = dados_por_item[slug][user]
total_platina += preco_item
print(f" • {slug}: {preco_item}p")
print(f" 💰 Custo total estimado: {total_platina}p")
if __name__ == "__main__":
buscar_multiplos_itens(
"glaive_prime_blueprint",
"glaive_prime_disc",
"glaive_prime_blade"
)