Beispiel #1
0
def fetch(period):
    url = u'http://flights.ch.com/default/SearchByTime?Stype=0&IfRet=false&' \
          u'OriCity=%s&DestCity=%s&MType=0&FDate=%s' \
          u'&ANum=1&CNum=0&INum=0&PostType=0' % (
              URL_PARAMS[Website.CH][period['from_city']][0],
              URL_PARAMS[Website.CH][period['to_city']][0],
              period['date'],
          )
    response = requests.post(url)
    try:
        msg = json.loads(response.text)
        flights = [x[0] for x in msg['Packages'] if len(x) == 1]
    except:
        return []
    format_flights = []
    for flight in flights:
        info = dig_info(flight)
        if info:
            format_flights.append(info)
    log_url = u'http://flights.ch.com/SHA-CKG.html?IfRet=false' \
              u'&OriCity=%s&OriCode=%s&DestCity=%s&DestCode=%s&FDate=%s' \
              u'&MType=0&ANum=1&CNum=0&INum=0&SType=0' % (
                  URL_PARAMS[Website.CH][period['from_city']][0],
                  URL_PARAMS[Website.CH][period['from_city']][1],
                  URL_PARAMS[Website.CH][period['to_city']][0],
                  URL_PARAMS[Website.CH][period['to_city']][1],
                  period['date'],
              )
    return util.deal(period, format_flights, Website.CH, log_url)
Beispiel #2
0
 def __init__(self, prev_data=None):
     if prev_data is not None:
         self.base_card = prev_data.base_card  # the card landlord holds
         self.discarded_card = prev_data.discarded_card  # discarded cards
         self.previous_play = prev_data.previous_play
         self.agent_order = prev_data.agent_order
         self.turn = prev_data.turn
         self.pass_count = prev_data.pass_count
         self.card_combinations = prev_data.card_combinations
         self.is_terminal = prev_data.is_terminal
         self.winner = prev_data.winner
         self.hands = prev_data.hands
         self.combos = prev_data.combos
     else:
         self.base_card = []  # the card landlord holds
         self.discarded_card = []  # discarded cards
         self.previous_play = (PASS, [])
         farmer_order = random.sample([FARMER_ONE, FARMER_TWO], 2)
         self.agent_order = [LANDLORD] + farmer_order
         self.turn = LANDLORD
         self.pass_count = 0
         self.card_combinations = CardCombinations()
         self.is_terminal = False
         self.winner = None
         base_card, pile_one, pile_two, pile_three = deal()
         self.hands = {
             LANDLORD: base_card + pile_one,
             FARMER_ONE: pile_two,
             FARMER_TWO: pile_three,
         }
         self.combos = {
             LANDLORD: Hand.get_all_combos(self.hands[LANDLORD]),
             FARMER_ONE: Hand.get_all_combos(self.hands[FARMER_ONE]),
             FARMER_TWO: Hand.get_all_combos(self.hands[FARMER_TWO]),
         }
Beispiel #3
0
def fetch(period):
    url = u'http://flights.ch.com/default/SearchByTime?Stype=0&IfRet=false&' \
          u'OriCity=%s&DestCity=%s&MType=0&FDate=%s' \
          u'&ANum=1&CNum=0&INum=0&PostType=0' % (
              URL_PARAMS[Website.CH][period['from_city']][0],
              URL_PARAMS[Website.CH][period['to_city']][0],
              period['date'],
          )
    response = requests.post(url)
    try:
        msg = json.loads(response.text)
        flights = [x[0] for x in msg['Packages'] if len(x) == 1]
    except:
        return []
    format_flights = []
    for flight in flights:
        info = dig_info(flight)
        if info:
            format_flights.append(info)
    log_url = u'http://flights.ch.com/SHA-CKG.html?IfRet=false' \
              u'&OriCity=%s&OriCode=%s&DestCity=%s&DestCode=%s&FDate=%s' \
              u'&MType=0&ANum=1&CNum=0&INum=0&SType=0' % (
                  URL_PARAMS[Website.CH][period['from_city']][0],
                  URL_PARAMS[Website.CH][period['from_city']][1],
                  URL_PARAMS[Website.CH][period['to_city']][0],
                  URL_PARAMS[Website.CH][period['to_city']][1],
                  period['date'],
              )
    return util.deal(period, format_flights, Website.CH, log_url)
Beispiel #4
0
 def start(self, player1, player2):
     # select N hand*2 from deck at random
     # deal them into two piles
     # each pile gets a Hand document
     c = Card()
     cards = c.pick_n(config.handsize*2)
     pile1, pile2 = deal(cards)
     
     h = Hand(player=player1, cards=pile1)
     h2 = Hand(player=player2, cards=pile2)
Beispiel #5
0
    def start(self, player1, player2):
        # select N hand*2 from deck at random
        # deal them into two piles
        # each pile gets a Hand document
        c = Card()
        cards = c.pick_n(config.handsize * 2)
        pile1, pile2 = deal(cards)

        h = Hand(player=player1, cards=pile1)
        h2 = Hand(player=player2, cards=pile2)
Beispiel #6
0
def fetch(period):
    browser = webdriver.PhantomJS()
    url = 'http://www.ceair.com/flight2014/%s-%s-%s_CNY.html' % \
        (URL_PARAMS[Website.CEAIR][period['from_city']],
         URL_PARAMS[Website.CEAIR][period['to_city']],
         period['date'][2:].replace('-', ''))
    browser.get(url)
    block = util.fetch_one(browser, 'find_element_by_id', 'flight-info')
    if not block:
        return []
    time.sleep(3)
    flights = util.fetch_multi(block, 'find_elements_by_class_name', 'section')
    format_flights = []
    for flight in flights:
        info = dig_info(flight)
        if info:
            format_flights.append(info)
    browser.quit()
    return util.deal(period, format_flights, Website.CEAIR, url)
Beispiel #7
0
def fetch(period):
    browser = webdriver.PhantomJS()
    url = 'http://flights.ctrip.com/booking/%s-%s-day-1.html#DDate1=%s' % \
        (URL_PARAMS[Website.CTRIP][period['from_city']],
         URL_PARAMS[Website.CTRIP][period['to_city']],
         period['date'])
    browser.get(url)
    util.scroll(browser)
    block = util.fetch_one(browser, 'find_element_by_id', 'J_flightlist2')
    if not block:
        return []
    flights = util.fetch_multi(block, 'find_elements_by_class_name',
                               'search_table_header')
    format_flights = []
    for flight in flights:
        info = dig_info(flight)
        if info:
            format_flights.append(info)
    browser.quit()
    return util.deal(period, format_flights, Website.CTRIP, url)
Beispiel #8
0
def fetch(period):
    format_flights = []
    airport_pairs = [(x, y) for x in CITY_TO_AIRPORTS[period['from_city']]
                     for y in CITY_TO_AIRPORTS[period['to_city']]]
    url = ''
    for pair in airport_pairs:
        browser = webdriver.PhantomJS()
        date = period['date']
        url = 'http://et.airchina.com.cn/InternetBooking/AirLowFareSearchExternal' \
            '.do?tripType=OW&searchType=FARE&flexibleSearch=false' \
            '&directFlightsOnly=false&fareOptions=1.FAR.X' \
            '&outboundOption.originLocationCode=' + \
            URL_PARAMS[Website.CSAIR][pair[0]] + \
            '&outboundOption.destinationLocationCode=' + \
            URL_PARAMS[Website.CSAIR][pair[1]] + \
            '&outboundOption.departureDay=' + date[8:] + \
            '&outboundOption.departureMonth=' + date[5:7] + \
            '&outboundOption.departureYear=' + date[0:4] + \
            '&outboundOption.departureTime=NA' \
            '&guestTypes%5B0%5D.type=ADT' \
            '&guestTypes%5B0%5D.amount=1' \
            '&guestTypes%5B1%5D.type=CNN' \
            '&guestTypes%5B1%5D.amount=0' \
            '&guestTypes%5B2%5D.type=INF' \
            '&guestTypes%5B2%5D.amount=0' \
            '&pos=AIRCHINA_CN&lang=zh_CN'
        browser.get(url)
        block = util.fetch_one(browser, 'find_element_by_id',
                               'resultsFFBlock1')
        if not block:
            continue
        flights = util.fetch_multi(block, 'find_elements_by_tag_name',
                                   'tbody')
        for flight in flights:
            info = dig_info(flight)
            if info:
                format_flights.append(info)
        browser.quit()
    return util.deal(period, format_flights, Website.AIRCHINA, url)
Beispiel #9
0
def fetch(period):
    format_flights = []
    airport_pairs = [(x, y) for x in CITY_TO_AIRPORTS[period['from_city']]
                     for y in CITY_TO_AIRPORTS[period['to_city']]]
    url = ''
    for pair in airport_pairs:
        browser = webdriver.PhantomJS()
        date = period['date']
        url = 'http://et.airchina.com.cn/InternetBooking/AirLowFareSearchExternal' \
            '.do?tripType=OW&searchType=FARE&flexibleSearch=false' \
            '&directFlightsOnly=false&fareOptions=1.FAR.X' \
            '&outboundOption.originLocationCode=' + \
            URL_PARAMS[Website.CSAIR][pair[0]] + \
            '&outboundOption.destinationLocationCode=' + \
            URL_PARAMS[Website.CSAIR][pair[1]] + \
            '&outboundOption.departureDay=' + date[8:] + \
            '&outboundOption.departureMonth=' + date[5:7] + \
            '&outboundOption.departureYear=' + date[0:4] + \
            '&outboundOption.departureTime=NA' \
            '&guestTypes%5B0%5D.type=ADT' \
            '&guestTypes%5B0%5D.amount=1' \
            '&guestTypes%5B1%5D.type=CNN' \
            '&guestTypes%5B1%5D.amount=0' \
            '&guestTypes%5B2%5D.type=INF' \
            '&guestTypes%5B2%5D.amount=0' \
            '&pos=AIRCHINA_CN&lang=zh_CN'
        browser.get(url)
        block = util.fetch_one(browser, 'find_element_by_id',
                               'resultsFFBlock1')
        if not block:
            continue
        flights = util.fetch_multi(block, 'find_elements_by_tag_name', 'tbody')
        for flight in flights:
            info = dig_info(flight)
            if info:
                format_flights.append(info)
        browser.quit()
    return util.deal(period, format_flights, Website.AIRCHINA, url)
Beispiel #10
0
def fetch(period):
    format_flights = []
    airport_pairs = [(x, y) for x in CITY_TO_AIRPORTS[period['from_city']]
                     for y in CITY_TO_AIRPORTS[period['to_city']]]
    url = ''
    for pair in airport_pairs:
        browser = webdriver.PhantomJS()
        url = 'http://b2c.csair.com/B2C40/modules/bookingnew/main/' \
              'flightSelectDirect.html?t=S&c1=%s&c2=%s&d1=%s&at=1&ct=0&it=0' % \
              (URL_PARAMS[Website.CSAIR][pair[0]],
               URL_PARAMS[Website.CSAIR][pair[1]],
               period['date'])
        browser.get(url)
        block = util.fetch_one(browser, 'find_element_by_class_name',
                               'sp-trip-body')
        if not block:
            continue
        flights = util.fetch_multi(block, 'find_elements_by_tag_name', 'ul')
        for flight in flights:
            info = dig_info(flight, pair)
            if info:
                format_flights.append(info)
        browser.quit()
    return util.deal(period, format_flights, Website.CSAIR, url)