README
Run SQL queries from chat.
This skill requires the following secrets to be configured:
connstring
Connection string for the database. Abbot must be able to reach your server for this to work.
Code
def run_query(query):
# Set a secret called «connstring» that contains the connection to your database.
connstr = bot.secrets.read(«connstring»)
if connstr:
engine = sqlalchemy.create_engine(connstr)
df = pandas.read_sql(query, engine)
return ««`{}«`».format(df.to_markdown())
else:
return «There’s no connection string set up. Please add one before running this skill.»
# We recommend predefining some queries instead of letting people run SQL
# commands directly from chat.
queries = {
«newusers»: «»» SELECT «Username», «CreatedAt»
FROM «Users»
ORDER BY «CreatedAt»
DESC LIMIT 10;»»»,
«usercount»: «»» SELECT DATE(date_joined) AS DAY, COUNT(id) AS NewUsers
FROM users
GROUP BY DATE(date_joined);»»»
}
query_keys = queries.keys()
# Check to see if the user has asked for a predefined query.
if bot.arguments in query_keys:
result = run_query(queries.get(bot.arguments))
else:
result = «Available queries are: »
for key in query_keys:
result += «\n * » + key
# Return the result to chat
bot.reply(result)