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