Beispiel #1
0
	def shutdown(self):
		self.proto.send('Exiting. Good bye.','channel')
		self.proto.close()

		self.mem.commit_history() # make sure we store all the history of this session

		# close up anything in the db as well
		conn.commit()
		conn.close()
Beispiel #2
0
 def updateCalendar(self):
     tcalendar = self.tcalendar
     days = self.calendar.monthdayscalendar(self.year, self.month)
     for y in range(6):
         for x in range(7):
             tcalendar.setItem(y, x, QTableWidgetItem(''))
     self.info.clear()
     for y, row in enumerate(days):
         for x, item in enumerate(row):
             if item == 0:
                 item = ''
             else:
                 if not conn.isOpen():
                     if not conn.open():
                         raise DatabaseError
                 query = QSqlQuery(conn)
                 query.prepare(
                     'SELECT price, count, category FROM outgones WHERE\
                     (day = {} and month = {} and year = {})'.format(
                         item, self.month, self.year))
                 query.exec_()
                 if not query.isSelect():
                     raise DatabaseError
                 s = 0
                 query.first()
                 while query.isValid():
                     val = query.value('price') * query.value('count')
                     s += val
                     self.info.addData(query.value('category'), val)
                     query.next()
                 if s == 0:
                     item = str(item)
                 else:
                     item = '{}: {}'.format(item, round(s, 2))
                 conn.close()
             tcalendar.setItem(y, x, QTableWidgetItem(item))
     tcalendar.resizeColumnsToContents()
     tcalendar.resizeRowsToContents()
     month = Months(self.month).name
     year = str(self.year)
     self.bdate.setText('{}, {}'.format(month, year))
     w = sum(tcalendar.columnWidth(i) for i in range(7)) + 33
     h = sum(tcalendar.rowHeight(i) for i in range(7)) + 198
     self.resize(w, h)
     self.parent().setFixedSize(w, h)
Beispiel #3
0
def getNewMessages():
    cur.execute(
        ''' SELECT time_stamp, message_type, message FROM emergency_message WHERE reviewed = FALSE; '''
    )
    messages = cur.fetchall()
    message_count = len(messages)
    if message_count == 0:
        return False
    message_string = '%s new emergency messages have been added to the database!\n\n----------------------------------------\n' % (
        str(message_count))
    for message in messages:
        message_string += '''message time: {0}\n message type: {1}\n message: {2}\n------------------------------------\n '''.format(
            *message)
    cur.execute(''' UPDATE emergency_message SET reviewed = TRUE; ''')
    conn.commit()
    cur.close()
    conn.close()
    return message_string
Beispiel #4
0
async def main():
    sem = asyncio.Semaphore(10)
    async with aiohttp.ClientSession() as session:
        with open('data_files/char_9_strokes.json', 'r') as f:
            middle_chars = json.load(f)
        with open('data_files/char_by_freq.json', 'r') as f:
            last_chars = json.load(f)

        last_name = '馮'
        futures = []

        # batch call
        for batch_no, first_names in enumerate(
                get_first_names(middle_chars, last_chars)):
            full_names = [
                last_name + first_name[0] + first_name[1]
                for first_name in first_names
            ]
            names_in_db = batch_get_names_from_db(full_names)
            missing_full_names = set(full_names) - set(names_in_db)
            logging.debug(f'To fecth {missing_full_names}')
            if len(missing_full_names) == 0:
                continue
            for full_name in missing_full_names:
                futures.append(
                    query_name(session, sem, full_name[1:], full_name[0]))
            ret = await asyncio.gather(*futures)
            logging.debug(f'ret = {ret}')
            futures = []
            to_insert = [{
                'name': full_name,
                'score': score,
                'luck': luck
            } for full_name, (score, luck) in ret]
            logging.debug(f'to_insert = {to_insert}')
            batch_insert_names_and_scores(to_insert)
            if batch_no >= 100:
                break

        conn.close()
        )  #BeautifulSoup - это обертка для парсинга, он принимает два значения: 1)html код парсинга 2)тип парсера который следует использовать lxml - Python биндинг популярнойи и очень быстрой С библиотеки
        collect = soup.find_all(
            'a', class_='link_gtm-js link_pageevents-js ddl_product_link')
        #product_links = (tag.get('href') for tag  in collect.find('a'))#Берем ссылки классов тегов, как бы обошли сам тег а и взли только его ссылки

        for link in collect:
            linka = link.get('href')
            print(linka)
            get_product_info(linka)  #вызываем функцию
            try:
                if data['price'] == -1:
                    continue
                cur = conn.cursor()  # создаём объект для работы с запросами
                o = int(
                    data['price'].replace(" ", "")
                )  # на сайте цена в виде строки мы приводим её к числовому типу и удаляем пробелы из неё
                cur.execute(
                    sql, (data['link'], data['name'], o)
                )  # преобразуем строку, попутно подставляя в неё переменные в запрос
                conn.commit(
                )  #отправляем запрос в базу данных, для изменения данных
                time.sleep(20)
            except MySQLdb.Error as err:
                print("Query error: {}".format(
                    err))  #выводит ошибку если она есть
                conn.rollback()  #отменяет изменения
    cur.close()  #закрывает курсор
    conn.close()  #закрывает коннект
except MySQLdb.Error as err:
    print("Connection error: {}".format(err))
    conn.close()
Beispiel #6
0
import MySQLdb

from db import conn

cur = conn.cursor()

query = "DELETE FROM video_cards"

cur.execute(query)
conn.commit()

cur.close()
conn.close()