Memeology ep1. Knowing When to Post
Memology is the study of internet culture, particulary memes. I don't claim to be an expert, but I guess no-one is.
Welcome to episode 1 of Memeology, a series of blog posts based on the theory of posting memes.
This episode will be based on knowing when to post your memes.

Timing is key.
Timing is key to posting memes. You want to make sure that your content can reach as many people as possible before its too late.
- Post your meme at the right time for the particular place you're posting. E.g. 11am GMT Monday for r/Dankmemes on Reddit.
- Post your meme at the time where your target audience is awake; E.g. Post a Brexit meme whilst British people are awake.
- Post your meme at the time where your offender audience is asleep; E.g. Don't post a meme being derogatory about British people having bad teeth while all the British people are awake.
By ensuring that you time it right, you reduce the likeliness that your meme will die.

Some of my research;
A few weeks ago, I created a Python Script that signed into my Reddit Account using the Reddit API and checks how many users are active on a certain subreddit.
I could specify which subreddit as a parameter of a function, allowing me to quickly grab numbers of users.

I loaded this onto Wayscript. Wayscript allows me to run that Python code in the cloud on certain events and allows me to collate that data onto other services.
So, I set Wayscript to export the data as a table to Google Sheets.

And use a timestamp from Date-Time.

And I could set it to run every hour.

But then I thought. An hour is hardly accurate. So, I set up a HTTP endpoint trigger and configured my Node-RED server (locally, on Docker) to automatically trigger that endpoint every 5 minutes, A hacky workaround but a working one.
So, here's my script:
import requests
def authentication(password):
data = {'grant_type': 'password', 'username': 'dylank46', 'password': password}
auth = requests.auth.HTTPBasicAuth('LPdRLQFMkbcP5w', '_pGVeISWFGqDyx2nmq3ZD5PBzvAfYg')
useragent = '!!!USERAGENT!!!'
d = (requests.post('https://www.reddit.com/api/v1/access_token',
data=data,
headers={'user-agent': useragent},
auth=auth)).json()
global base_url
global headers
base_url = 'https://oauth.reddit.com/'
headers = {'Authorization': ('bearer ' + d['access_token']), 'User-Agent': useragent}
def getdata(subreddit):
response = requests.get(base_url+'r/'+subreddit+'/about', headers=headers)
response=response.json()
variables[subreddit] = (response['data']['accounts_active'])
'''
def timestamp():
if len(str(v.4.minute-Datetime.minute))==1:
minute= "0"+str(v.4.minute-Datetime.minute)
if len(str(v.4.minute-Datetime.minute))==2:
minute= str(v.4.minute-Datetime.minute)
if len(str(v.4.hour-Datetime.hour))==1:
hour= "0"+str(v.4.minute-Datetime.minute)
if len(str(v.4.hour-Datetime.hour))==2:
hour= str(v.4.hour-Datetime.hour)
variables['time'] = hour+":"+minute
variables['date'] = v.4.date-Datetime.date
'''
def timestamp():
variables['date'] = v.4.date-Datetime.date
variables['time'] = v.4.time-Datetime.time
authentication(!!!PASSWORD!!!)
getdata('memes')
getdata('dankmemes')
getdata('AdviceAnimals')
getdata('MemeEconomy')
getdata('ComedyCemetery')
getdata('PrequelMemes')
getdata('PewdiepieSubmissions')
timestamp()of course, if you'd like to use it; You'd have to register for the Reddit API and get a user agent for an app, but otherwise it should work. Although, bear in-mind you'd likely have to re-do the parts with [?] because those parts are attempting to reference the Wayscript time-date module.
Here's the output;

We can see that you're much better posting on the weekends.
You can definitely find more data online.
So, Now what?

- You can use the Reddit API (REST or PRAW) to schedule a post,
- You could use a service such as Delay For Reddit and schedule a post to publish at the right time.

That's all from this post!