from aiogram import Bot, Dispatcher, executor, types
import bitly_api
import sys
import pyshorteners
from amazon_paapi import AmazonApi
from amazon_paapi import get_asin
from urllib.parse import urlparse, parse_qs, urlencode
import urllib.parse
import re
from bs4 import BeautifulSoup
import requests
from requests.exceptions import HTTPError
import time
HEADERS = ({'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',
'Accept-Language': 'en-US, en;q=0.5'})
ACCESS_TOKEN= "61fcfa2ac0d63034094e04f8ba5dead4f1700092"
s = pyshorteners.Shortener(api_key=ACCESS_TOKEN)
KEY = "AKIAJCTGVQNTIW2GOKKQ"
SECRET = "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"
TAG = "geeky.vikas-21"
COUNTRY = "IN"
MARKETPLACE = "www.amazon.in"
PARTNERTYPE = "Associates"
amazon = AmazonApi(KEY, SECRET, TAG, COUNTRY )
bot = Bot(token='5667404401:AAFVIxuhicOS5p_0WsxSyVK08okbH-bDNoM')#my
# bot = Bot(token='5899329902:AAG8HmcuVnQthEFGpeCHAwIBx3FJPqxgWIU')#vikas
dp = Dispatcher(bot)
@dp.message_handler(content_types=["text"])
async def handle_text(message: types.Message):
msg = requests.get(message.text)
print(msg.url)
user_url = msg.url.replace('gp/product', 'dp')
try:
try:
asintemp = get_asin(msg.url)
asin = asintemp.replace("?", "")
except:
parsed_urlasin = urllib.parse.urlparse(user_url)
query_paramsasin = urllib.parse.parse_qs(parsed_urlasin.query)
asintemp = query_paramsasin["dp"]
asin = asintemp.replace("?", "")
item = amazon.get_items(user_url)
print(asin)
item = amazon.get_items(asin)[0]
price = item.offers.listings[0].price.amount
name = item.item_info.title.display_value
# off = item.offers.listings[0].price.savings.percentage
mrp = item.offers.listings[0].saving_basis.amount
url = user_url.replace("gp/product", "dp")
parsed_url = urlparse(url)
query_string = parsed_url.query
query_params = parse_qs(query_string)
if 'tag' in query_params:
query_params['tag'] = ['geeky.vikas-21']
else:
query_string += '&tag=geeky.vikas-21'
updated_url = parsed_url._replace(query=query_string).geturl()
print(name)
print(price)
print(mrp)
myurl = updated_url
source = requests.get (myurl, headers=HEADERS)
soup = BeautifulSoup(source.text,'html.parser')
title = soup.find('title').text
pnf = "Page Not Found"
if title == pnf:
shorturl = "Page Not Found"
print(myurl)
else:
# shorturl = s.bitly.short(myurl)
shorturl = myurl
# shorturl = s.bitly.short(myurl)
intmrp = int(str(mrp).split('.')[0])
intprice = int(str(price).split('.')[0])
mycap = ""+name+"\n\n❌ MRP: ₹ "+str(intmrp)+"\n✅ Deal Price: ₹ "+str(intprice)+"\n\n"+shorturl+""
await message.answer_photo(item.images.primary.large.url, caption=mycap)
except Exception as myerror:
await message.answer_photo("https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Face-sad.svg/96px-Face-sad.svg.png", caption=myerror)
@dp.message_handler()
async def echo(message: types.Message):
await message.answer(message.text)
executor.start_polling(dp)
0 comments:
Post a Comment