Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
##
#import getpass
#getpass.getpass("pass")
##
import discord
import asyncio
import requests
import json
import urllib.parse
from discord.ext import commands
import time
from discord.ext.commands import Bot
import smtplib
import sqlite3
#from chatterbot import ChatBot
#from chatterbot.trainers import ListTrainer
#import os
##########################################
client = discord.Client()
client_command = commands
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
##########################################
@client.event
async def on_message(message):
content = message.content
channel = message.channel
UserRequest = message.content.lower()
userId = message.author.id
userName = message.author.name
timestamp = message.timestamp
strtimestapm = str(message.timestamp)
#_Final_U_INFO = ("#User Name: "+userName+" #User ID: "+userId+" #User's Message: "+content)
aa = str("#User Name: "+userName+" #User ID: "+userId+" #Content: "+content+" #Timestamp:"+ strtimestapm)
##########################################
if UserRequest == "help" or UserRequest == "!help":
await client.send_message(channel,"For getting news ,please use '!news' command.___________ ")
#For sending e-mail please use '!sendemail'command => command '!mymail' => command'!mypass' => command'!receiver' => command '!subject' => command '!content'.MAKE SURE THAT YOU ARE SENDING FROM gmail.com ACCOUNT,OTHERWISE YOU CANNOT SEND ANY EMAIL CURRENTLY.")#For chatting with just write something I will respond.")
#await client.send_message(channel,userId)This and next lines of code is for giving user ID and name on discord respectively,of course if user want.However I have not added this option.
#await client.send_message(channel, "<@%s>" % (userId))
#print(userId)
#print("@"+userName)
##########################################
elif message.content.lower() == '!sendemail':
if message.content.lower().startswith('!mymail'):
mymail_ = message.content
if message.content.lower().startswith('!mypass'):
mymailpass_ = message.content
if message.content.lower().startswith('!receiver'):
receiver_ = message.content
if message.content.lower().startswith('!subject'):
subject_ = message.content
if message.content.lower().startswith('!content'):
Mcontent_ = message.content
def send_email(subject_, Mcontent_):
try:
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(mymail_,mymailpass_)
message = 'Subject: {}\n\n{}'.format(subject_, Mcontent_)
server.sendmail(receiver_,receiver_ , message)
server.quit()
print("Email sent!")
#await client.send_message(channel,"Email sent!")
except:
print("Email failed to send.")
#await client.send_message(channel,"Email failed to send.")
#THIS COMMNAD DID NOT WORKED ,ALTHOUGH I REALLY TRIED TO INCLUD THIS FUNCTION ON MY CHATBOT ASWELL.
##########################################
elif message.content.lower().startswith('!news'):
oldUserRequest1 = message.content.lower()
UserRequest1 = oldUserRequest1.replace('!news', '')#to remove '!news' from the keyword
content1 = message.content
encoded = urllib.parse.quote(UserRequest1)
apiAdd2 = "https://newsapi.org/v2/everything?"
keywords2 = 'q='+ encoded
apikey = "&apikey=9430b58b162f4318bf862402d40a634d"
url2 = apiAdd2 + keywords2 + apikey
try:
jsonData2 = requests.get(url2).json()
except:
print("The link is not established!")
await client.send_message(channel,"The link is not established!")
print(url2)
subject__ = userName+"'s message"
def send_email(subject_, Mcontent_):
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login('chbotd2@gmail.com','kGP9Z5E1ZiEJsLA')
message = 'Subject: {}\n\n{}'.format(subject__, Mcontent_)
if userName == "ChatBot-D2":#I did not want to send bot messages to the Email address.
pass
#if message.content.lower().startswith('!sendemail'):#line 113 and 118.AttributeError: 'str' object has no attribute 'content'
#pass
else:
server.sendmail('chbotd2@gmail.com','chbotd2@gmail.com' , message)
server.quit()
send_email(subject__,aa)
for i in range(3):#ACTUALLTY THERE ARE MORE THAN 3 NEWS MOSTLY ,BUT I DID NOT WANT TO SEND ALL OF THE PROVIDED DATA.
_a_ = jsonData2['articles'][i]['author']
_b_ = jsonData2['articles'][i]['title']
_c_ = jsonData2['articles'][i]['description']
_d_ = jsonData2['articles'][i]['url']
#_e_ = jsonData2['articles'][i]['urlToImage']FOR SENDING POSSIBLE PICTURES OF NEWS TO THE USER.
_g_ = jsonData2['articles'][i]['publishedAt']
#_h_ = jsonData2['articles'][i]['content'] CONTENT OF THE NEWS.
await client.send_message(channel,_a_)
await client.send_message(channel,_b_)
await client.send_message(channel,_c_)
await client.send_message(channel,_d_)
#await client.send_message(channel,_e_)
await client.send_message(channel,_g_)
#await client.send_message(channel,_h_)
await client.send_message(channel,"________________________________________________________")
i +=1
##########################################
subject__ = userName+"'s message"
def send_email(subject_, Mcontent_):#I DID COPY THE CODE AGAIN BECAUSE PERVIOUS ONE WAS FOR NEWS COMMAND ONLY.
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login('chbotd2@gmail.com','kGP9Z5E1ZiEJsLA')
message = 'Subject: {}\n\n{}'.format(subject__, Mcontent_)
if userName == "ChatBot-D2":
pass
#if message.content.lower().startswith('!sendemail'):#.AttributeError: 'str' object has no attribute 'content'
#pass
else:
server.sendmail('chbotd2@gmail.com','chbotd2@gmail.com' , message)
server.quit()
send_email(subject__,aa)
#FOR SHOWING ON TERMINAL
print("UserName: @"+userName)
print("UserID: "+userId)
print("Message time: "+strtimestapm)
print("User's message: "+content)
print("__________________")
conn = sqlite3.connect('UrINFO.db')
c = conn.cursor()
##########################################
def create_table():
c.execute("CREATE TABLE IF NOT EXISTS stuffToPlot(UserName TEXT , UserID Real, Message TEXT, Time REAL)")
def dynamic_data_entry():
UserName = userName
UserID = userId
Message = content
Time = strtimestapm
c.execute("INSERT INTO stuffToPlot (UserName, UserID, Message, Time) VALUES (?, ?, ?, ? )",(UserName, UserID, Message, Time))
conn.commit()
create_table()
dynamic_data_entry()
##########################################
client.run('NTE1OTE0MTYzMDA0ODk5MzI4.Dtsb3g.Kyp-_mqX9W--kGP9Z5E1ZiEJsLA')
##########################################