Rev 12005 | Blame | Compare with Previous | Last modification | View Log | RSS feed
import urllib2import requestsimport astimport timefrom elixir import *from elixir import metadata, setup_allfrom sqlalchemy.engine import create_enginefrom shop2020.model.v1.order.impl.model.RechargeDenomination import RechargeDenominationengine = create_engine('mysql://root:shop2020@' + 'localhost' + '/' + 'transaction', pool_recycle=7200)metadata.bind = enginemetadata.bind.echo = Truesetup_all(True)listCircle = [['Andhra Pradesh','ANDHRA%20PRADESH',1],['Assam','ASSAM',2],['Bihar','BIHAR%20JHARKHAND',3],['Chennai','CHENNAI',4],['Delhi NCR','DELHI%20NCR',5],['Gujarat','GUJARAT',6],['Haryana','HARYANA',9],['Himachal Pradesh','HIMACHAL%20PRADESH',7],['Jammu','JAMMU%20KASHMIR',8],['Karnataka','KARNATAKA',10],['Kerela','KERALA',11],['Kolkata','KOLKATA',12],['MP','MADHYA%20PRADESH%20CHHATTISGARH',14],['Maharashtra','MAHARASHTRA',13],['Mumbai','MUMBAI',15],['North East','NORTH%20EAST',16],['Orissa','ORISSA',17],['Punjab','PUNJAB',18],['Rajasthan','RAJASTHAN',19],['Tamil Nadu','TAMIL%20NADU',20],['UP East','UP%20EAST',21],['UP(West)','UP%20WEST',22],['West Bengal','WEST%20BENGAL',23]]listOperator =[['Aircel','aircel',6],['Airtel','airtel',7],['Idea','idea',10],['Mtnl Delhi','mtnl',11],['Mtnl Mumbai','mtnl',12],['Reliance GSM','reliance%20gsm',13],['Reliance CDMA','reliance%20cdma',14],['Uninor','uninor',17],['Vodafone','vodafone',19]]listRechargeType = ['top_up','special_recharge','2g_data','3g_data']def fetch_plans(operator,circle):url='https://hub.paytm.com/api/plans/list?type=mobile&operator=%s&circle=%s&auth=nosession&callback=jQuery15203827297973902207_1374842060208'%(operator[1],circle[1])print urltime.sleep(2)req = urllib2.Request(url)response = urllib2.urlopen(req)json_input = response.read()start = json_input.rindex("\"plans\":") + len( "\"plans\":" )end = json_input.rindex( ",\"count\":", start )parse= json_input[start:end]plans = ast.literal_eval(parse)commit_details(operator,circle,plans)def commit_details(operator,circle,plans):for plan in plans:try:rechargeType = str(plan['category'])print rechargeTypevalue = int(plan['value'])talktime = str(plan['talktime'])validity = str(plan['validity'])description = str(plan['full_desc'].replace("\u2022",""))description = description.replace("\/", "/")description = description.replace("\n",".")denomination = RechargeDenomination()denomination.operatorId = operator[2]denomination.circleId = circle[2]if rechargeType == 'Top_Up':denomination.denominationType = 1else:denomination.denominationType = 2denomination.validity = validitydenomination.amount = valuedenomination.description = "Talktime (Rs)"+talktime+"."+descriptionexcept Exception as e:print "Unable to populate because ",esession.commit()def main():for operator in listOperator:for circle in listCircle:print "Trying to fetch recharge plans for Operator = %s , Circle = %s" %(operator[0],circle[0])print "\n"fetch_plans(operator,circle)if __name__ == "__main__":main()