Пример #1
0
def send_rate(message):
    n = News()
    n.find_news(news_counter)
    inline_markup = telebot.types.InlineKeyboardMarkup()
    itembtnyes = telebot.types.InlineKeyboardButton('Yes',
                                                    callback_data='news_yes')
    itembtnno = telebot.types.InlineKeyboardButton('No',
                                                   callback_data='news_no')
    inline_markup.row(itembtnyes, itembtnno)
    bot.send_message(message.chat.id,
                     f"{n.title}\n{n.url}\n\nAre you interested in this news?",
                     disable_web_page_preview=True,
                     reply_markup=inline_markup)
Пример #2
0
def recommend_handler(message):
    num_news = 20
    n = News()
    news, urls = [], []
    for i in range(num_news):
        n.find_news(i)
        news.append(n.title)
        urls.append(n.url)
    y_pred = recommend(message.chat.id, news, num_news)
    if y_pred is None:
        bot.send_message(message.chat.id, 'Cannot connect to DB')
    else:
        msg = '<b>Recommended news based on your preferences</b>\n\n'
        for i in range(num_news):
            if y_pred[i] == 1:
                msg += f'<a href="{urls[i]}">{news[i]}</a>\n\n'
        bot.send_message(message.chat.id,
                         msg,
                         parse_mode='HTML',
                         disable_web_page_preview=True)
Пример #3
0
def rate_handler(query):
    is_interested = 1 if query.data == 'news_yes' else 0
    text = query.message.text.split("\n")
    news_title = text[0]
    news_url = text[1]
    user_id = query.message.chat.id

    try:
        mydb = mysql.connector.connect(host=DB_HOST,
                                       user=DB_USER,
                                       passwd=DB_PASSWORD,
                                       database=DB_NAME)
        mycursor = mydb.cursor()
        sql = 'INSERT INTO news (news_title, news_url, is_interested, user_user_id) VALUES (%s, %s, %s, %s)'
        val = (news_title, news_url, is_interested, user_id)
        mycursor.execute(sql, val)
        mydb.commit()
        mycursor.close()
        mydb.close()

        bot.answer_callback_query(query.id, 'Your choice is saved')
        global news_counter
        news_counter = 0 if news_counter == 80 else news_counter + 1
        n = News()
        n.find_news(news_counter)
        new_msg = f"{n.title}\n{n.url}\n\nAre you interested in this news?"
        inline_markup = telebot.types.InlineKeyboardMarkup()
        itembtnyes = telebot.types.InlineKeyboardButton(
            'Yes', callback_data='news_yes')
        itembtnno = telebot.types.InlineKeyboardButton('No',
                                                       callback_data='news_no')
        inline_markup.row(itembtnyes, itembtnno)
        bot.edit_message_text(text=new_msg,
                              chat_id=query.message.chat.id,
                              message_id=query.message.message_id,
                              disable_web_page_preview=True,
                              reply_markup=inline_markup)
    except:
        bot.edit_message_text(text='Cannot connect to DB',
                              chat_id=query.message.chat.id,
                              message_id=query.message.message_id)
Пример #4
0
from email import Email
from excel import Excel
from news import News

m_email = Email()
m_excel = Excel()
m_news = News()

news_list = m_news.find_news('키워드!')

m_email.from_email = 'al'
m_email.to_email = 'dkjs'
m_email.subject = 'Dear. '

for news in news_list:
    m_email.contents = m_email.contents + news + '\n'

m_email.send_email()

m_excel.excel_file = 'result.xlsx'
m_excel.save_to_excel(news_list)