""" Flipkart affiliate URL generator for PriceTrackerBot """ import urllib.parse from typing import Optional def create_flipkart_affiliate_url( original_url: str, affiliate_id: str = "rohanpouri", affExtParam1: str = "ENKR20250901A1583066088", affExtParam2: str = "1760879" ) -> str: """ Create Flipkart affiliate URL with proper parameters Args: original_url: Original Flipkart URL affiliate_id: Your Flipkart affiliate ID affExtParam1: Additional affiliate parameter 1 affExtParam2: Additional affiliate parameter 2 Returns: URL with affiliate parameters """ try: # Parse the URL to handle existing parameters parsed = urllib.parse.urlparse(original_url) query_params = urllib.parse.parse_qs(parsed.query) # Add affiliate parameters query_params['affid'] = [affiliate_id] query_params['affExtParam1'] = [affExtParam1] query_params['affExtParam2'] = [affExtParam2] # Rebuild the URL with affiliate parameters new_query = urllib.parse.urlencode(query_params, doseq=True) affiliate_url = urllib.parse.urlunparse(( parsed.scheme, parsed.netloc, parsed.path, parsed.params, new_query, parsed.fragment )) return affiliate_url except Exception as e: print(f"Error creating Flipkart affiliate URL: {e}") return original_url def is_flipkart_url(url: str) -> bool: """Check if URL is from Flipkart""" return 'flipkart.com' in url.lower() def get_affiliate_config(): """Get Flipkart affiliate configuration""" return { "affiliate_id": "rohanpouri", "affExtParam1": "ENKR20250901A1583066088", "affExtParam2": "1760879" } # Test the affiliate URL generation if __name__ == "__main__": test_urls = [ "https://www.flipkart.com/apple-iphone-15-black-128-gb/p/itm6ac6485515ae4", "https://www.flipkart.com/samsung-galaxy-s24-ultra/p/itm123456789", "https://www.flipkart.com/product?pid=MOBH1234&lid=LSTMOBH12341234" ] print("Testing Flipkart affiliate URL generation:") print("=" * 60) for url in test_urls: affiliate_url = create_flipkart_affiliate_url(url) print(f"\nOriginal: {url}") print(f"Affiliate: {affiliate_url}")