Subversion Repositories SmartDukaan

Rev

Rev 12005 | Blame | Compare with Previous | Last modification | View Log | RSS feed

import urllib2
import requests
import ast
import time
from elixir import *
from elixir import metadata, setup_all
from sqlalchemy.engine import create_engine
from shop2020.model.v1.order.impl.model.RechargeDenomination import RechargeDenomination
    

engine = create_engine('mysql://root:shop2020@' + 'localhost' + '/' + 'transaction', pool_recycle=7200)
metadata.bind = engine
metadata.bind.echo = True
setup_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 url
    time.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 rechargeType
            value = 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 = 1
            else:
                denomination.denominationType = 2
            denomination.validity = validity
            denomination.amount = value
            denomination.description = "Talktime (Rs)"+talktime+"."+description
        except Exception as e:
            print "Unable to populate because ",e
    session.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()