refresh reddit token hourly
This commit is contained in:
parent
908260cfe8
commit
2c64d8f16d
1
TODO
1
TODO
@ -16,3 +16,4 @@ matrix:
|
||||
reddit:
|
||||
handle imgur albums
|
||||
handle youtube links
|
||||
convert ampersands from 'amp&;' to '&'
|
||||
|
||||
@ -128,6 +128,7 @@ namespace reddit{
|
||||
void set_useragent(const raii::string_base&);
|
||||
void set_useragent(raii::string_base&&);
|
||||
|
||||
void refresh_token(const auth_data& a);
|
||||
|
||||
post get_new_post(const raii::string_base& subreddit);
|
||||
post get_new_post(const raii::string_base& subreddit, const raii::string_base& after);
|
||||
|
||||
@ -97,7 +97,11 @@ namespace raii{
|
||||
return curl_string(tmp, strlen(tmp));
|
||||
}
|
||||
curl_string curler::decode(const char* data, int* outlen, int len){
|
||||
if(outlen)
|
||||
return curl_string(curl_easy_unescape(m_curl, data, len, outlen), *outlen);
|
||||
int out;
|
||||
char* tmp = curl_easy_unescape(m_curl, data, len, &out);
|
||||
return curl_string(tmp, out);
|
||||
}
|
||||
|
||||
CURL* curler::get(void){
|
||||
|
||||
@ -380,6 +380,10 @@ namespace reddit{
|
||||
m_useragent = std::move(s);
|
||||
}
|
||||
|
||||
void bot::refresh_token(const auth_data& a){
|
||||
m_access_token = _acquire_access_token(a);
|
||||
}
|
||||
|
||||
post bot::get_new_post(const raii::string_base& subreddit){
|
||||
return _get_post(subreddit, "new"_ss, "limit=1"_ss);
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
#include <rjp.h>
|
||||
#include <utility> //move
|
||||
#include <tuple>
|
||||
#include <chrono>
|
||||
|
||||
#define DBG_LEVEL_NONE 0
|
||||
#define DBG_LEVEL_NORMAL 2
|
||||
@ -362,6 +363,8 @@ int main(){
|
||||
DEBUG_PRINT("matrix bot initialized\n");
|
||||
auto sync_reply = matbot.sync(0); //initial sync
|
||||
raii::string subreddit = "ProgrammerHumor";
|
||||
auto start_time = std::chrono::system_clock::now();
|
||||
|
||||
|
||||
bool should_quit = false;
|
||||
auto sync_callback = [&](const matrix::bot& bot, const matrix::msg_info& msg)->void
|
||||
@ -381,6 +384,10 @@ int main(){
|
||||
bot.send_message(msg.roomid, raii::string("Current subreddit is \"" + subreddit + "\""));
|
||||
}else if(!strncmp(msg.body.get(), "!post ", 6)){
|
||||
if(msg.body.length() > 6){
|
||||
auto cur_time = std::chrono::system_clock::now();
|
||||
std::chrono::duration<double> elapsed = cur_time-start_time;
|
||||
if(elapsed.count() >= 3600)
|
||||
redditbot.refresh_token(reddit_auth);
|
||||
if(!strcmp(msg.body.get()+6, "hour")){
|
||||
do_reddit_post(redditbot,bot,msg.roomid, subreddit, reddit::time::hour);
|
||||
}else if(!strcmp(msg.body.get()+6, "day")){
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user