Repository: praw-dev/praw

Issue:
Feature Request: Delete Messages from Inbox
## Issue Description
Could we please get the option for deleting a message (PMs) from account inboxes? With something like

r.inbox.messages.delete('message_id'). 

BACKGROUND: Currently I'm writing a bot that needs to check for unread messages, take action on them and then delete them when they are done. However, the functionality does not seem to be there. nor does there seem to be a read/unread attribute when running 

`pprint.pprint(vars(message_id))`



## System Information

PRAW Version: 5.3.0
Python Version: 3.5
Operating System: Linux, ElementaryOS Loki

Possible solution might be to use [this code](https://gist.github.com/13steinj/589414df09733f927320f94261df7d58)

Feature Request: Delete Messages from Inbox
## Issue Description
Could we please get the option for deleting a message (PMs) from account inboxes? With something like

r.inbox.messages.delete('message_id'). 

BACKGROUND: Currently I'm writing a bot that needs to check for unread messages, take action on them and then delete them when they are done. However, the functionality does not seem to be there. nor does there seem to be a read/unread attribute when running 

`pprint.pprint(vars(message_id))`



## System Information

PRAW Version: 5.3.0
Python Version: 3.5
Operating System: Linux, ElementaryOS Loki

Possible solution might be to use [this code](https://gist.github.com/13steinj/589414df09733f927320f94261df7d58)



Discussion:
This feature appears to exist already in the API so it would just need a wrapper written for it in praw. 
https://www.reddit.com/dev/api#POST_api_del_msg
@dkemmet would you like to make a PR for the feature?

I would prefer the interface `Message.delete` since the interface appears to only work for a single message.

Thanks for requesting!
hey @bboe I am BARELY starting to write any manner of sophisticated/quality code and at that have only been using git through the CLI and tools like smartgit or sourcetree for mere months. With that background in mind I don't think it would be wise for someone like me attempt to contribute directly to the code without guidance or a mentor. If you could point me in the direction of such a person I'd be happy to take a stab at it.
I'm happy to provide some assistance to you as long as you're okay with semi-slow asynchronous communication. We have a community of people that can help at https://gitter.im/praw-dev/praw.

I would suggest starting by adding a `delete` method to the `Message` class: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/models/reddit/message.py#L9

The method can look very much like the mute method: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/models/reddit/message.py#L52

You'll need to add a new path mapping to the const file: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/const.py#L7
# Next Steps 
<p> Excuse the write up, I'm trying to make sure I do this right. As they say, Measure twice, cut once.</p>

## Step 1: Create a pull request
---
First I need fork PRAW into a branch that I own, clone that to my computer and then create a PR for master and my forked branch?

<br />

## Step 2: Make The Method
---
In <i><b>praw / models / reddit / message.py</b></i>  create a function in class message underneat <b>def init()</b>... 
    
     @classmethod
     def delete(self, reddit):
        self._reddit.post(API_PATH[delete_message], data={'id': self.id} )
Where <b>self</b> is the message object and <b>reddit</b> is the reddit instance. (_reddit.post(...) I believe is basically a POST to the API path defined in the const.py file. )

<br />

## Step 3: Make the Mapping
---
In const.py, add the folloing mapping in alphabetical order...

    'delete_message': 'r/{subreddit}/api/del_msg',
I believe this is correct because of the delete messages reference in the [Reddit API spec](https://www.reddit.com/dev/api#POST_api_del_msg)


## Step 4: Test
---
I have no idea how to do this, but at this point I need to make sure that the function actually works. 


## Step 4: Push
---
Huston, we have my first contribution to open source
A few comments @dkemmet:

- The `@classmethod` decorator makes a function belong to the class `Message`, rather than a particular `Message` instance. You should remove it, and then `delete` will apply to a particular message, rather than the `Message` class as a whole.
- I believe `delete` shouldn't take any parameters besides `self`. That way, if I have a message object named `m`, I can delete the message using `m.delete()`. The `reddit` parameter is used in `__init__` and stored as an instance attribute, and that is what's used in the line that starts with `self._reddit`.
- `API_PATH[delete_message]` should be `API_PATH['delete_message']` because the key is a string.
- Instead of `self.id`, use `self.name`. They're subtly different, with the difference being that `self.name` has a prefix that represents its type ([fullname info in API docs](https://www.reddit.com/dev/api#fullnames)).  The [section of the API docs you linked](https://www.reddit.com/dev/api#POST_api_del_msg) says that the parameter 'id' should be a fullname (which is poor design, IMO, but that's beside the point).
- The API path in the doc you linked is `api/del_msg`. It looks like you copied and pasted from another path definition and just forgot to remove the "r/{subreddit}" part. 

Great work! I like that you've thought the process through. One last thing: You should add yourself to 
[AUTHORS.rst](https://github.com/praw-dev/praw/blob/master/AUTHORS.rst) and write a short blurb about what you changed in [CHANGES.rst](https://github.com/praw-dev/praw/blob/master/CHANGES.rst). 
I was typing up a response but @jarhill0 covered everything better than I was about to (thanks @jarhill0). Here's the only bit I'd like to add:

> First I need fork PRAW into a branch that I own, clone that to my computer and then create a PR for master and my forked branch?

Yes, fork PRAW into your own copy of the repository. After you've cloned it, I encourage you to make a new branch locally so that you're not working on your own master branch. Making a new branch is preferred because otherwise you might inadvertently update your pull request if/when you want to make any other changes. There's no need to make a PR at this time.


Oh you asked about testing too. Give a read through these two resources:
* https://github.com/praw-dev/praw/blob/master/.github/CONTRIBUTING.md
* https://praw.readthedocs.io/en/latest/package_info/contributing.html

Thanks so much for taking a stab at this work. You're awesome.
@dkemmet it looks like @theriley106 took the initiative to make a PR for this feature. Did you have anything started that you'd like to follow through with? I'm asking since we were already in the process of working with you and want to ensure you don't feel like any effort you put in was for nothing.
This feature appears to exist already in the API so it would just need a wrapper written for it in praw. 
https://www.reddit.com/dev/api#POST_api_del_msg
@dkemmet would you like to make a PR for the feature?

I would prefer the interface `Message.delete` since the interface appears to only work for a single message.

Thanks for requesting!
hey @bboe I am BARELY starting to write any manner of sophisticated/quality code and at that have only been using git through the CLI and tools like smartgit or sourcetree for mere months. With that background in mind I don't think it would be wise for someone like me attempt to contribute directly to the code without guidance or a mentor. If you could point me in the direction of such a person I'd be happy to take a stab at it.
I'm happy to provide some assistance to you as long as you're okay with semi-slow asynchronous communication. We have a community of people that can help at https://gitter.im/praw-dev/praw.

I would suggest starting by adding a `delete` method to the `Message` class: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/models/reddit/message.py#L9

The method can look very much like the mute method: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/models/reddit/message.py#L52

You'll need to add a new path mapping to the const file: https://github.com/praw-dev/praw/blob/5af09837a9270134c98e3695404664610b7bb4c2/praw/const.py#L7
# Next Steps 
<p> Excuse the write up, I'm trying to make sure I do this right. As they say, Measure twice, cut once.</p>

## Step 1: Create a pull request
---
First I need fork PRAW into a branch that I own, clone that to my computer and then create a PR for master and my forked branch?

<br />

## Step 2: Make The Method
---
In <i><b>praw / models / reddit / message.py</b></i>  create a function in class message underneat <b>def init()</b>... 
    
     @classmethod
     def delete(self, reddit):
        self._reddit.post(API_PATH[delete_message], data={'id': self.id} )
Where <b>self</b> is the message object and <b>reddit</b> is the reddit instance. (_reddit.post(...) I believe is basically a POST to the API path defined in the const.py file. )

<br />

## Step 3: Make the Mapping
---
In const.py, add the folloing mapping in alphabetical order...

    'delete_message': 'r/{subreddit}/api/del_msg',
I believe this is correct because of the delete messages reference in the [Reddit API spec](https://www.reddit.com/dev/api#POST_api_del_msg)


## Step 4: Test
---
I have no idea how to do this, but at this point I need to make sure that the function actually works. 


## Step 4: Push
---
Huston, we have my first contribution to open source
A few comments @dkemmet:

- The `@classmethod` decorator makes a function belong to the class `Message`, rather than a particular `Message` instance. You should remove it, and then `delete` will apply to a particular message, rather than the `Message` class as a whole.
- I believe `delete` shouldn't take any parameters besides `self`. That way, if I have a message object named `m`, I can delete the message using `m.delete()`. The `reddit` parameter is used in `__init__` and stored as an instance attribute, and that is what's used in the line that starts with `self._reddit`.
- `API_PATH[delete_message]` should be `API_PATH['delete_message']` because the key is a string.
- Instead of `self.id`, use `self.name`. They're subtly different, with the difference being that `self.name` has a prefix that represents its type ([fullname info in API docs](https://www.reddit.com/dev/api#fullnames)).  The [section of the API docs you linked](https://www.reddit.com/dev/api#POST_api_del_msg) says that the parameter 'id' should be a fullname (which is poor design, IMO, but that's beside the point).
- The API path in the doc you linked is `api/del_msg`. It looks like you copied and pasted from another path definition and just forgot to remove the "r/{subreddit}" part. 

Great work! I like that you've thought the process through. One last thing: You should add yourself to 
[AUTHORS.rst](https://github.com/praw-dev/praw/blob/master/AUTHORS.rst) and write a short blurb about what you changed in [CHANGES.rst](https://github.com/praw-dev/praw/blob/master/CHANGES.rst). 
I was typing up a response but @jarhill0 covered everything better than I was about to (thanks @jarhill0). Here's the only bit I'd like to add:

> First I need fork PRAW into a branch that I own, clone that to my computer and then create a PR for master and my forked branch?

Yes, fork PRAW into your own copy of the repository. After you've cloned it, I encourage you to make a new branch locally so that you're not working on your own master branch. Making a new branch is preferred because otherwise you might inadvertently update your pull request if/when you want to make any other changes. There's no need to make a PR at this time.


Oh you asked about testing too. Give a read through these two resources:
* https://github.com/praw-dev/praw/blob/master/.github/CONTRIBUTING.md
* https://praw.readthedocs.io/en/latest/package_info/contributing.html

Thanks so much for taking a stab at this work. You're awesome.
@dkemmet it looks like @theriley106 took the initiative to make a PR for this feature. Did you have anything started that you'd like to follow through with? I'm asking since we were already in the process of working with you and want to ensure you don't feel like any effort you put in was for nothing.

Resolving patch:
diff --git a/praw/const.py b/praw/const.py
--- a/praw/const.py
+++ b/praw/const.py
@@ -25,11 +25,12 @@
     'compose':                'api/compose/',
     'contest_mode':           'api/set_contest_mode/',
     'del':                    'api/del/',
-    'deleteflair':            'r/{subreddit}/api/deleteflair',
+    'delete_message':         'api/del_msg',
     'delete_sr_banner':       'r/{subreddit}/api/delete_sr_banner',
     'delete_sr_header':       'r/{subreddit}/api/delete_sr_header',
     'delete_sr_icon':         'r/{subreddit}/api/delete_sr_icon',
     'delete_sr_image':        'r/{subreddit}/api/delete_sr_img',
+    'deleteflair':            'r/{subreddit}/api/deleteflair',
     'distinguish':            'api/distinguish/',
     'domain':                 'domain/{domain}/',
     'duplicates':             'duplicates/{submission_id}/',
@@ -71,9 +72,9 @@
     'live_invite':            'api/live/{id}/invite_contributor',
     'live_leave':             'api/live/{id}/leave_contributor',
     'live_now':               'api/live/happening_now',
-    'live_remove_update':     'api/live/{id}/delete_update',
     'live_remove_contrib':    'api/live/{id}/rm_contributor',
     'live_remove_invite':     'api/live/{id}/rm_contributor_invite',
+    'live_remove_update':     'api/live/{id}/delete_update',
     'live_report':            'api/live/{id}/report',
     'live_strike':            'api/live/{id}/strike_update',
     'live_update_perms':      'api/live/{id}/set_contributor_permissions',
@@ -82,18 +83,13 @@
     'liveabout':              'api/live/{id}/about/',
     'livecreate':             'api/live/create',
     'lock':                   'api/lock/',
+    'marknsfw':               'api/marknsfw/',
     'me':                     'api/v1/me',
     'mentions':               'message/mentions',
     'message':                'message/messages/{id}/',
     'messages':               'message/messages/',
     'moderator_messages':     'r/{subreddit}/message/moderator/',
     'moderator_unread':       'r/{subreddit}/message/moderator/unread/',
-    'morechildren':           'api/morechildren/',
-    'my_contributor':         'subreddits/mine/contributor/',
-    'my_moderator':           'subreddits/mine/moderator/',
-    'my_multireddits':        'api/multi/mine/',
-    'my_subreddits':          'subreddits/mine/subscriber/',
-    'marknsfw':               'api/marknsfw/',
     'modmail_archive':        'api/mod/conversations/{id}/archive',
     'modmail_bulk_read':      'api/mod/conversations/bulk/read',
     'modmail_conversation':   'api/mod/conversations/{id}',
@@ -106,6 +102,7 @@
     'modmail_unmute':         'api/mod/conversations/{id}/unmute',
     'modmail_unread':         'api/mod/conversations/unread',
     'modmail_unread_count':   'api/mod/conversations/unread/count',
+    'morechildren':           'api/morechildren/',
     'multireddit':            'user/{user}/m/{multi}/',
     'multireddit_api':        'api/multi/user/{user}/m/{multi}/',
     'multireddit_base':       'api/multi/',
@@ -114,6 +111,10 @@
     'multireddit_update':     'api/multi/user/{user}/m/{multi}/r/{subreddit}',
     'multireddit_user':       'api/multi/user/{user}/',
     'mute_sender':            'api/mute_message_author/',
+    'my_contributor':         'subreddits/mine/contributor/',
+    'my_moderator':           'subreddits/mine/moderator/',
+    'my_multireddits':        'api/multi/mine/',
+    'my_subreddits':          'subreddits/mine/subscriber/',
     'preferences':            'api/v1/me/prefs',
     'quarantine_opt_in':      'api/quarantine_optin',
     'quarantine_opt_out':     'api/quarantine_optout',
@@ -127,8 +128,8 @@
     'sendreplies':            'api/sendreplies',
     'sent':                   'message/sent/',
     'setpermissions':         'r/{subreddit}/api/setpermissions/',
-    'spoiler':                'api/spoiler/',
     'site_admin':             'api/site_admin/',
+    'spoiler':                'api/spoiler/',
     'sticky_submission':      'api/set_subreddit_sticky/',
     'sub_recommended':        'api/recommend/sr/{subreddits}',
     'submission':             'comments/{id}/',
@@ -145,9 +146,9 @@
     'subreddits_by_topic':    'api/subreddits_by_topic',
     'subreddits_default':     'subreddits/default/',
     'subreddits_gold':        'subreddits/gold/',
+    'subreddits_name_search': 'api/search_reddit_names/',
     'subreddits_new':         'subreddits/new/',
     'subreddits_popular':     'subreddits/popular/',
-    'subreddits_name_search': 'api/search_reddit_names/',
     'subreddits_search':      'subreddits/search/',
     'subscribe':              'api/subscribe/',
     'suggested_sort':         'api/set_suggested_sort/',
diff --git a/praw/models/reddit/message.py b/praw/models/reddit/message.py
--- a/praw/models/reddit/message.py
+++ b/praw/models/reddit/message.py
@@ -45,6 +45,15 @@ def __init__(self, reddit, _data):
         super(Message, self).__init__(reddit, _data)
         self._fetched = True
 
+    def delete(self):
+        """Delete the message.
+
+        .. note:: Reddit does not return an indication of whether or not the
+                  message was successfully deleted.
+        """
+        self._reddit.post(API_PATH['delete_message'],
+                          data={'id': self.fullname})
+
 
 class SubredditMessage(Message):
     """A class for messages to a subreddit."""


Test patch:
diff --git a/tests/integration/cassettes/TestMessage.test_delete.json b/tests/integration/cassettes/TestMessage.test_delete.json
new file mode 100644
--- /dev/null
+++ b/tests/integration/cassettes/TestMessage.test_delete.json
@@ -0,0 +1,169 @@
+{
+  "http_interactions": [
+    {
+      "recorded_at": "2018-03-03T20:26:27",
+      "request": {
+        "body": {
+          "encoding": "utf-8",
+          "string": "grant_type=password&password=<PASSWORD>&username=<USERNAME>"
+        },
+        "headers": {
+          "Accept": "*/*",
+          "Accept-Encoding": "identity",
+          "Authorization": "Basic <BASIC_AUTH>",
+          "Connection": "keep-alive",
+          "Content-Length": "53",
+          "Content-Type": "application/x-www-form-urlencoded",
+          "User-Agent": "<USER_AGENT> PRAW/5.4.0.dev0 prawcore/0.14.0"
+        },
+        "method": "POST",
+        "uri": "https://www.reddit.com/api/v1/access_token"
+      },
+      "response": {
+        "body": {
+          "encoding": "UTF-8",
+          "string": "{\"access_token\": \"<ACCESS_TOKEN>\", \"token_type\": \"bearer\", \"expires_in\": 3600, \"scope\": \"*\"}"
+        },
+        "headers": {
+          "Accept-Ranges": "bytes",
+          "Connection": "keep-alive",
+          "Content-Length": "105",
+          "Content-Type": "application/json; charset=UTF-8",
+          "Date": "Sat, 03 Mar 2018 20:26:27 GMT",
+          "Server": "snooserv",
+          "Strict-Transport-Security": "max-age=15552000; includeSubDomains; preload",
+          "Via": "1.1 varnish",
+          "X-Cache": "MISS",
+          "X-Cache-Hits": "0",
+          "X-Moose": "majestic",
+          "X-Served-By": "cache-pao17436-PAO",
+          "X-Timer": "S1520108787.743171,VS0,VE537",
+          "cache-control": "max-age=0, must-revalidate",
+          "set-cookie": "session_tracker=pow9q5noN3rijfcYxz.0.1520108786777.Z0FBQUFBQmFtd1R6UmhYeTMwZGxtUVlHSjRGc09jbkkwVUxTdlJQcUcwQnZuOC1COGFBcERXWHpSeE12aEFNWVFKS1k3QV9ENklXQVRpNmpJdjFJbmpuRk9MSGdfaVdjWUxSZUo4S3VBa01oeThjUVRVWEJIVmF6TGhVR0VWZk5lTWU2SHB6SzIwMDU; Domain=reddit.com; Max-Age=7199; Path=/; expires=Sat, 03-Mar-2018 22:26:27 GMT; secure",
+          "x-content-type-options": "nosniff",
+          "x-frame-options": "SAMEORIGIN",
+          "x-xss-protection": "1; mode=block"
+        },
+        "status": {
+          "code": 200,
+          "message": "OK"
+        },
+        "url": "https://www.reddit.com/api/v1/access_token"
+      }
+    },
+    {
+      "recorded_at": "2018-03-03T20:26:28",
+      "request": {
+        "body": {
+          "encoding": "utf-8",
+          "string": ""
+        },
+        "headers": {
+          "Accept": "*/*",
+          "Accept-Encoding": "identity",
+          "Authorization": "bearer <ACCESS_TOKEN>",
+          "Connection": "keep-alive",
+          "Cookie": "edgebucket=WdDOBvUdIkrtYJToHT; session_tracker=pow9q5noN3rijfcYxz.0.1520108786777.Z0FBQUFBQmFtd1R6UmhYeTMwZGxtUVlHSjRGc09jbkkwVUxTdlJQcUcwQnZuOC1COGFBcERXWHpSeE12aEFNWVFKS1k3QV9ENklXQVRpNmpJdjFJbmpuRk9MSGdfaVdjWUxSZUo4S3VBa01oeThjUVRVWEJIVmF6TGhVR0VWZk5lTWU2SHB6SzIwMDU",
+          "User-Agent": "<USER_AGENT> PRAW/5.4.0.dev0 prawcore/0.14.0"
+        },
+        "method": "GET",
+        "uri": "https://oauth.reddit.com/message/messages/?limit=100&raw_json=1"
+      },
+      "response": {
+        "body": {
+          "encoding": "UTF-8",
+          "string": "{\"kind\": \"Listing\", \"data\": {\"after\": null, \"dist\": 35, \"modhash\": null, \"whitelist_status\": \"all_ads\", \"children\": [{\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2azyh\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"delete!\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003Edelete!\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2azyh\", \"created\": 1520136180.0, \"created_utc\": 1520107380.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2az9y\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"delete!\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003Edelete!\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2az9y\", \"created\": 1520136082.0, \"created_utc\": 1520107282.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2avlu\", \"subject\": \"test\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"hi\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003Ehi\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2avlu\", \"created\": 1520135536.0, \"created_utc\": 1520106736.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2asdh\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Yo\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYo\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2asdh\", \"created\": 1520135050.0, \"created_utc\": 1520106250.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2arxn\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Yo\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYo\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2arxn\", \"created\": 1520134986.0, \"created_utc\": 1520106186.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2arnm\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Yo\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYo\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2arnm\", \"created\": 1520134942.0, \"created_utc\": 1520106142.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2aqzb\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Yo\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYo\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2aqzb\", \"created\": 1520134835.0, \"created_utc\": 1520106035.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"b2ap69\", \"subject\": \"Test message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Yo\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYo\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_b2ap69\", \"created\": 1520134556.0, \"created_utc\": 1520105756.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"az2dl9\", \"subject\": \"Join the Reddit Redesign Alpha\", \"was_comment\": false, \"score\": 0, \"author\": \"reddit\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"\\nHello, u/<USERNAME>!\\n\\nAs you've probably heard by now, we've been [hard at work](https://www.reddit.com/r/blog/comments/7ul5k9/hey_were_here_to_talk_about_that_desktop_redesign/) on the redesign for the past year. As a moderator of large subreddit, your feedback on how we're doing is critical to us, so we'd like to invite you to test out the alpha, start styling your communities in the redesign before we open it up for beta, and most importantly let us know what you think. \\n\\nThe sense of community users get when they visit a subreddit with its own unique look and format is a huge part of what makes Reddit Reddit, and keeping this community uniqueness has been a central part of our redesign efforts. Please opt into the redesign or visit alpha.reddit.com, where you can visit all of the subreddits that you moderate, begin to style them, and give us your feedback.\\n\\nWe have added you to a community we created called r/redesign, where you can ask others for styling help and share your thoughts with us. Stickied at the top is [a quick TL;DR post](https://www.reddit.com/r/redesign/comments/7paj7h/welcome_to_the_reddit_redesign/) to welcome you to the community and [a post that hightlights what we are currently working on as well as how we collect feedback](https://www.reddit.com/r/redesign/comments/7zhq4a/feedback_on_the_redesign_and_the_major_changes_we/). \\n\\nPlease keep in mind that we still have a lot of work left to do. And all styling changes that you make will only affect the alpha website. Today, about 10,000 testers are on the alpha website; however, we will be increasing that number very soon and want to give you an early invitation so that you have a chance to style your community and we have a chance to hear your feedback.\\n\\nThanks in advance for your help,\\n\\nThe Reddit Redesign Team\\n\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EHello, \\u003Ca href=\\\"/u/<USERNAME>\\\"\\u003Eu/<USERNAME>\\u003C/a\\u003E!\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EAs you\\u0026#39;ve probably heard by now, we\\u0026#39;ve been \\u003Ca href=\\\"https://www.reddit.com/r/blog/comments/7ul5k9/hey_were_here_to_talk_about_that_desktop_redesign/\\\"\\u003Ehard at work\\u003C/a\\u003E on the redesign for the past year. As a moderator of large subreddit, your feedback on how we\\u0026#39;re doing is critical to us, so we\\u0026#39;d like to invite you to test out the alpha, start styling your communities in the redesign before we open it up for beta, and most importantly let us know what you think. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003EThe sense of community users get when they visit a subreddit with its own unique look and format is a huge part of what makes Reddit Reddit, and keeping this community uniqueness has been a central part of our redesign efforts. Please opt into the redesign or visit alpha.reddit.com, where you can visit all of the subreddits that you moderate, begin to style them, and give us your feedback.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EWe have added you to a community we created called \\u003Ca href=\\\"/r/redesign\\\"\\u003Er/redesign\\u003C/a\\u003E, where you can ask others for styling help and share your thoughts with us. Stickied at the top is \\u003Ca href=\\\"https://www.reddit.com/r/redesign/comments/7paj7h/welcome_to_the_reddit_redesign/\\\"\\u003Ea quick TL;DR post\\u003C/a\\u003E to welcome you to the community and \\u003Ca href=\\\"https://www.reddit.com/r/redesign/comments/7zhq4a/feedback_on_the_redesign_and_the_major_changes_we/\\\"\\u003Ea post that hightlights what we are currently working on as well as how we collect feedback\\u003C/a\\u003E. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003EPlease keep in mind that we still have a lot of work left to do. And all styling changes that you make will only affect the alpha website. Today, about 10,000 testers are on the alpha website; however, we will be increasing that number very soon and want to give you an early invitation so that you have a chance to style your community and we have a chance to hear your feedback.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EThanks in advance for your help,\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EThe Reddit Redesign Team\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_az2dl9\", \"created\": 1519372445.0, \"created_utc\": 1519343645.0, \"context\": \"\", \"distinguished\": \"admin\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"aoqfg4\", \"subject\": \"Fix my permissions please\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"Hey, bot here\\n\\nI just need `config` and `posts` permissions. You should take away all my other permissions to increase security.\\n\\nThanks\\n\\nPS I probably won't see your responses, if any, since I don't normally log into this account.\", \"dest\": \"#PokemonCreate\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EHey, bot here\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EI just need \\u003Ccode\\u003Econfig\\u003C/code\\u003E and \\u003Ccode\\u003Eposts\\u003C/code\\u003E permissions. You should take away all my other permissions to increase security.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EThanks\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EPS I probably won\\u0026#39;t see your responses, if any, since I don\\u0026#39;t normally log into this account.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_aoqfg4\", \"created\": 1516974346.0, \"created_utc\": 1516945546.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"aoqeqs\", \"subject\": \"moderator added\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"/u/<USERNAME> has accepted an invitation to become moderator of /r/PokemonCreate.\", \"dest\": \"#PokemonCreate\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"/u/<USERNAME>\\\"\\u003E/u/<USERNAME>\\u003C/a\\u003E has accepted an invitation to become moderator of \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003E/r/PokemonCreate\\u003C/a\\u003E.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_aoqeqs\", \"created\": 1516974206.0, \"created_utc\": 1516945406.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"aop1mt\", \"subject\": \"invitation to moderate /r/PokemonCreate\", \"was_comment\": false, \"score\": 0, \"author\": \"dynamictop\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"**gadzooks! you are invited to become a moderator of [/r/PokemonCreate: PokemonCreate](/r/PokemonCreate)!**\\n\\n*to accept*, visit the [moderators page for /r/PokemonCreate](/r/PokemonCreate/about/moderators) and click \\\"accept\\\".\\n\\n*otherwise,* if you did not expect to receive this, you can simply ignore this invitation or report it.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Cstrong\\u003Egadzooks! you are invited to become a moderator of \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003E/r/PokemonCreate: PokemonCreate\\u003C/a\\u003E!\\u003C/strong\\u003E\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eto accept\\u003C/em\\u003E, visit the \\u003Ca href=\\\"/r/PokemonCreate/about/moderators\\\"\\u003Emoderators page for /r/PokemonCreate\\u003C/a\\u003E and click \\u0026quot;accept\\u0026quot;.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eotherwise,\\u003C/em\\u003E if you did not expect to receive this, you can simply ignore this invitation or report it.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_aop1mt\", \"created\": 1516965895.0, \"created_utc\": 1516937095.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"aop10x\", \"subject\": \"/u/<USERNAME> has been removed as a moderator from r/PokemonCreate\", \"was_comment\": false, \"score\": 0, \"author\": \"PokeFanORAS\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"<USERNAME>: You have been removed as a moderator from r/PokemonCreate.  If you have a question regarding your removal, you can contact the moderator team for r/PokemonCreate by replying to this message.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E<USERNAME>: You have been removed as a moderator from \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003Er/PokemonCreate\\u003C/a\\u003E.  If you have a question regarding your removal, you can contact the moderator team for \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003Er/PokemonCreate\\u003C/a\\u003E by replying to this message.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_aop10x\", \"created\": 1516965803.0, \"created_utc\": 1516937003.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"akm9wz\", \"subject\": \"'Test 4 subject' from throwaway_the_fourth\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"New message from /u/throwaway_the_fourth re 'Test 4 subject':\\n\\n---\\n\\nTest 3 body\\n\\nWith newlines\\n\\n\\u003E quotes\\n\\n    code\\n\\n# And all that ^jazz\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003ENew message from \\u003Ca href=\\\"/u/throwaway_the_fourth\\\"\\u003E/u/throwaway_the_fourth\\u003C/a\\u003E re \\u0026#39;Test 4 subject\\u0026#39;:\\u003C/p\\u003E\\n\\n\\u003Chr/\\u003E\\n\\n\\u003Cp\\u003ETest 3 body\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EWith newlines\\u003C/p\\u003E\\n\\n\\u003Cblockquote\\u003E\\n\\u003Cp\\u003Equotes\\u003C/p\\u003E\\n\\u003C/blockquote\\u003E\\n\\n\\u003Cpre\\u003E\\u003Ccode\\u003Ecode\\n\\u003C/code\\u003E\\u003C/pre\\u003E\\n\\n\\u003Ch1\\u003EAnd all that \\u003Csup\\u003Ejazz\\u003C/sup\\u003E\\u003C/h1\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_akm9wz\", \"created\": 1516003207.0, \"created_utc\": 1515974407.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"akm9u2\", \"subject\": \"Test 4 subject\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Test 3 body\\n\\nWith newlines\\n\\n\\u003E quotes\\n\\n    code\\n\\n# And all that ^jazz\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003ETest 3 body\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EWith newlines\\u003C/p\\u003E\\n\\n\\u003Cblockquote\\u003E\\n\\u003Cp\\u003Equotes\\u003C/p\\u003E\\n\\u003C/blockquote\\u003E\\n\\n\\u003Cpre\\u003E\\u003Ccode\\u003Ecode\\n\\u003C/code\\u003E\\u003C/pre\\u003E\\n\\n\\u003Ch1\\u003EAnd all that \\u003Csup\\u003Ejazz\\u003C/sup\\u003E\\u003C/h1\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_akm9u2\", \"created\": 1516003196.0, \"created_utc\": 1515974396.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"akm9cb\", \"subject\": \"Test 3 subject\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Test 3 body\\n\\nWith newlines\\n\\n\\u003E quotes\\n\\n    code\\n\\n# And all that ^jazz\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003ETest 3 body\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EWith newlines\\u003C/p\\u003E\\n\\n\\u003Cblockquote\\u003E\\n\\u003Cp\\u003Equotes\\u003C/p\\u003E\\n\\u003C/blockquote\\u003E\\n\\n\\u003Cpre\\u003E\\u003Ccode\\u003Ecode\\n\\u003C/code\\u003E\\u003C/pre\\u003E\\n\\n\\u003Ch1\\u003EAnd all that \\u003Csup\\u003Ejazz\\u003C/sup\\u003E\\u003C/h1\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_akm9cb\", \"created\": 1516003127.0, \"created_utc\": 1515974327.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"akm51v\", \"subject\": \"Message subject 2\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Message body 2\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EMessage body 2\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_akm51v\", \"created\": 1516002498.0, \"created_utc\": 1515973698.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"akm4n1\", \"subject\": \"Message subject\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Message body\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EMessage body\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_akm4n1\", \"created\": 1516002442.0, \"created_utc\": 1515973642.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"ttft\", \"likes\": null, \"replies\": \"\", \"id\": \"ab49tf\", \"subject\": \"Bot message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/ttft\", \"new\": false, \"body\": \"\\nI couldn't parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form `[Text to be replaced](\\n.../r/SUB_NAME/submit...)` where the `...` is anything and `SUB_NAME` is the \\nname of your subreddit. \\n\\nSubreddit closing or opening will have to be done manually.\", \"dest\": \"#ttft\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EI couldn\\u0026#39;t parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form \\u003Ccode\\u003E[Text to be replaced](\\n.../r/SUB_NAME/submit...)\\u003C/code\\u003E where the \\u003Ccode\\u003E...\\u003C/code\\u003E is anything and \\u003Ccode\\u003ESUB_NAME\\u003C/code\\u003E is the \\nname of your subreddit. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003ESubreddit closing or opening will have to be done manually.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_ab49tf\", \"created\": 1513674233.0, \"created_utc\": 1513645433.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"ttft\", \"likes\": null, \"replies\": \"\", \"id\": \"a57jvr\", \"subject\": \"Bot message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/ttft\", \"new\": false, \"body\": \"\\nI couldn't parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form `[Text to be replaced](\\n.../r/SUB_NAME/submit...)` where the `...` is anything and `SUB_NAME` is the \\nname of your subreddit. \\n\\nSubreddit closing or opening will have to be done manually.\", \"dest\": \"#ttft\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EI couldn\\u0026#39;t parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form \\u003Ccode\\u003E[Text to be replaced](\\n.../r/SUB_NAME/submit...)\\u003C/code\\u003E where the \\u003Ccode\\u003E...\\u003C/code\\u003E is anything and \\u003Ccode\\u003ESUB_NAME\\u003C/code\\u003E is the \\nname of your subreddit. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003ESubreddit closing or opening will have to be done manually.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_a57jvr\", \"created\": 1512209746.0, \"created_utc\": 1512180946.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"a57j8j\", \"subject\": \"moderator added\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"/u/<USERNAME> has accepted an invitation to become moderator of /r/PokemonCreate.\", \"dest\": \"#PokemonCreate\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"/u/<USERNAME>\\\"\\u003E/u/<USERNAME>\\u003C/a\\u003E has accepted an invitation to become moderator of \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003E/r/PokemonCreate\\u003C/a\\u003E.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_a57j8j\", \"created\": 1512209631.0, \"created_utc\": 1512180831.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"PokemonCreate\", \"likes\": null, \"replies\": \"\", \"id\": \"a57if1\", \"subject\": \"invitation to moderate /r/PokemonCreate\", \"was_comment\": false, \"score\": 0, \"author\": \"[deleted]\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/PokemonCreate\", \"new\": false, \"body\": \"**gadzooks! you are invited to become a moderator of [/r/PokemonCreate: PokemonCreate!](/r/PokemonCreate)!**\\n\\n*to accept*, visit the [moderators page for /r/PokemonCreate](/r/PokemonCreate/about/moderators) and click \\\"accept\\\".\\n\\n*otherwise,* if you did not expect to receive this, you can simply ignore this invitation or report it.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Cstrong\\u003Egadzooks! you are invited to become a moderator of \\u003Ca href=\\\"/r/PokemonCreate\\\"\\u003E/r/PokemonCreate: PokemonCreate!\\u003C/a\\u003E!\\u003C/strong\\u003E\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eto accept\\u003C/em\\u003E, visit the \\u003Ca href=\\\"/r/PokemonCreate/about/moderators\\\"\\u003Emoderators page for /r/PokemonCreate\\u003C/a\\u003E and click \\u0026quot;accept\\u0026quot;.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eotherwise,\\u003C/em\\u003E if you did not expect to receive this, you can simply ignore this invitation or report it.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_a57if1\", \"created\": 1512209487.0, \"created_utc\": 1512180687.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"ttft\", \"likes\": null, \"replies\": \"\", \"id\": \"a570ku\", \"subject\": \"Bot message\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/ttft\", \"new\": false, \"body\": \"\\nI couldn't parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form `[Text to be replaced](\\n\\u2026/r/SUB_NAME/submit\\u2026)` where the `\\u2026` is anything and `SUB_NAME` is the name \\nof your subreddit. \\n\\nSubreddit closing or opening will have to be done manually.\", \"dest\": \"#ttft\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EI couldn\\u0026#39;t parse the sidebar text correctly. Somewhere in the sidebar, \\nthere should be a link in the form \\u003Ccode\\u003E[Text to be replaced](\\n\\u2026/r/SUB_NAME/submit\\u2026)\\u003C/code\\u003E where the \\u003Ccode\\u003E\\u2026\\u003C/code\\u003E is anything and \\u003Ccode\\u003ESUB_NAME\\u003C/code\\u003E is the name \\nof your subreddit. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003ESubreddit closing or opening will have to be done manually.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_a570ku\", \"created\": 1512206323.0, \"created_utc\": 1512177523.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"ttft\", \"likes\": null, \"replies\": \"\", \"id\": \"985a4l\", \"subject\": \"moderator added\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/ttft\", \"new\": false, \"body\": \"/u/<USERNAME> has accepted an invitation to become moderator of /r/ttft.\", \"dest\": \"#ttft\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"/u/<USERNAME>\\\"\\u003E/u/<USERNAME>\\u003C/a\\u003E has accepted an invitation to become moderator of \\u003Ca href=\\\"/r/ttft\\\"\\u003E/r/ttft\\u003C/a\\u003E.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_985a4l\", \"created\": 1503566736.0, \"created_utc\": 1503537936.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"ttft\", \"likes\": null, \"replies\": \"\", \"id\": \"985a22\", \"subject\": \"invitation to moderate /r/ttft\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/ttft\", \"new\": false, \"body\": \"**gadzooks! you are invited to become a moderator of [/r/ttft: Throwaway_the_fourth Testing](/r/ttft)!**\\n\\n*to accept*, visit the [moderators page for /r/ttft](/r/ttft/about/moderators) and click \\\"accept\\\".\\n\\n*otherwise,* if you did not expect to receive this, you can simply ignore this invitation or report it.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Cstrong\\u003Egadzooks! you are invited to become a moderator of \\u003Ca href=\\\"/r/ttft\\\"\\u003E/r/ttft: Throwaway_the_fourth Testing\\u003C/a\\u003E!\\u003C/strong\\u003E\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eto accept\\u003C/em\\u003E, visit the \\u003Ca href=\\\"/r/ttft/about/moderators\\\"\\u003Emoderators page for /r/ttft\\u003C/a\\u003E and click \\u0026quot;accept\\u0026quot;.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eotherwise,\\u003C/em\\u003E if you did not expect to receive this, you can simply ignore this invitation or report it.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_985a22\", \"created\": 1503566724.0, \"created_utc\": 1503537924.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"Redefinition2\", \"likes\": null, \"replies\": \"\", \"id\": \"984loa\", \"subject\": \"You've been temporarily banned from participating in r/Redefinition2\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/Redefinition2\", \"new\": false, \"body\": \"You have been temporarily banned from participating in r/Redefinition2. This ban will last for 1 days. You can still view and subscribe to r/Redefinition2, but you won't be able to post or comment.\\n\\nNote from the moderators:\\n\\n\\u003E ban_message\\n\\nIf you have a question regarding your ban, you can contact the moderator team for r/Redefinition2 by replying to this message.\\n\\n**Reminder from the Reddit staff**: If you use another account to circumvent this subreddit ban, that will be considered a violation of [the Content Policy](/help/contentpolicy#section_prohibited_behavior) and can result in your account being [suspended](https://www.reddithelp.com/en/categories/reddit-101/rules-reporting/account-and-community-restrictions/suspensions) from the site as a whole.\", \"dest\": \"MindOfMetalAndWheeIs\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EYou have been temporarily banned from participating in \\u003Ca href=\\\"/r/Redefinition2\\\"\\u003Er/Redefinition2\\u003C/a\\u003E. This ban will last for 1 days. You can still view and subscribe to \\u003Ca href=\\\"/r/Redefinition2\\\"\\u003Er/Redefinition2\\u003C/a\\u003E, but you won\\u0026#39;t be able to post or comment.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003ENote from the moderators:\\u003C/p\\u003E\\n\\n\\u003Cblockquote\\u003E\\n\\u003Cp\\u003Eban_message\\u003C/p\\u003E\\n\\u003C/blockquote\\u003E\\n\\n\\u003Cp\\u003EIf you have a question regarding your ban, you can contact the moderator team for \\u003Ca href=\\\"/r/Redefinition2\\\"\\u003Er/Redefinition2\\u003C/a\\u003E by replying to this message.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cstrong\\u003EReminder from the Reddit staff\\u003C/strong\\u003E: If you use another account to circumvent this subreddit ban, that will be considered a violation of \\u003Ca href=\\\"/help/contentpolicy#section_prohibited_behavior\\\"\\u003Ethe Content Policy\\u003C/a\\u003E and can result in your account being \\u003Ca href=\\\"https://www.reddithelp.com/en/categories/reddit-101/rules-reporting/account-and-community-restrictions/suspensions\\\"\\u003Esuspended\\u003C/a\\u003E from the site as a whole.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_984loa\", \"created\": 1503562510.0, \"created_utc\": 1503533710.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8vljnc\", \"subject\": \"New post from u/throwaway_video_bot: link post\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"https://reddit.com/r/throwaway_the_videos/comments/6nya54/link_post/\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"https://reddit.com/r/throwaway_the_videos/comments/6nya54/link_post/\\\"\\u003Ehttps://reddit.com/r/throwaway_the_videos/comments/6nya54/link_post/\\u003C/a\\u003E\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8vljnc\", \"created\": 1500378057.0, \"created_utc\": 1500349257.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8vlj9i\", \"subject\": \"New post from u/throwaway_video_bot: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"https://reddit.com/r/throwaway_the_videos/comments/6ny9ym/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"https://reddit.com/r/throwaway_the_videos/comments/6ny9ym/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/\\\"\\u003Ehttps://reddit.com/r/throwaway_the_videos/comments/6ny9ym/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/\\u003C/a\\u003E\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8vlj9i\", \"created\": 1500377993.0, \"created_utc\": 1500349193.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8vliaw\", \"subject\": \"New post from u/throwaway_video_bot: Test.\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"https://reddit.com//r/throwaway_the_videos/comments/6ny9kj/test/\", \"dest\": \"throwaway_the_fourth\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"https://reddit.com//r/throwaway_the_videos/comments/6ny9kj/test/\\\"\\u003Ehttps://reddit.com//r/throwaway_the_videos/comments/6ny9kj/test/\\u003C/a\\u003E\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8vliaw\", \"created\": 1500377847.0, \"created_utc\": 1500349047.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8tkjao\", \"subject\": \"test subj\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"test body\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003Etest body\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8tkjao\", \"created\": 1499839399.0, \"created_utc\": 1499810599.0, \"context\": \"\", \"distinguished\": null}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"Redefinition2\", \"likes\": null, \"replies\": \"\", \"id\": \"8o48yx\", \"subject\": \"moderator added\", \"was_comment\": false, \"score\": 0, \"author\": \"<USERNAME>\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/Redefinition2\", \"new\": false, \"body\": \"/u/<USERNAME> has accepted an invitation to become moderator of /r/Redefinition2.\", \"dest\": \"#Redefinition2\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"/u/<USERNAME>\\\"\\u003E/u/<USERNAME>\\u003C/a\\u003E has accepted an invitation to become moderator of \\u003Ca href=\\\"/r/Redefinition2\\\"\\u003E/r/Redefinition2\\u003C/a\\u003E.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8o48yx\", \"created\": 1498374566.0, \"created_utc\": 1498345766.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8o48yt\", \"subject\": \"Welcome to Moderating!\", \"was_comment\": false, \"score\": 0, \"author\": \"reddit\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"If you're receiving this automated message, you've just become a moderator in your first community, congratulations!  Here are some tips that might help you along your way:\\r\\n\\r\\n* Read through [our moderator guidelines](/help/healthycommunities) to help you grow a healthy community and ensure you know what\\u2019s expected of you as a moderator.\\r\\n\\r\\n* Subscribe to r/modnews! Official announcements specifically of interest to moderators will be posted here. Don't worry \\u2014 only the reddit admins can submit things there, so it won't clutter your front page too much.\\r\\n\\r\\n* Check out r/modhelp. It's a great place to get answers from your fellow moderators on best practices or how all your new tools work. Be sure to check out the sidebar for more resources!\\r\\n\\r\\n* r/ModSupport is where you can ask questions directly to the admins about policy or introduce ideas for mod specific features you'd like to see implemented.\\r\\n\\r\\n* If you have someone breaking [site wide rules](/help/contentpolicy) in your community or if you have a question you'd prefer to ask privately, reddit admins can be reached via [modmail in r/reddit.com](http://www.reddit.com/message/compose?to=/r/reddit.com).\\r\\n\\r\\nThanks for helping contribute to the site!\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EIf you\\u0026#39;re receiving this automated message, you\\u0026#39;ve just become a moderator in your first community, congratulations!  Here are some tips that might help you along your way:\\u003C/p\\u003E\\n\\n\\u003Cul\\u003E\\n\\u003Cli\\u003E\\u003Cp\\u003ERead through \\u003Ca href=\\\"/help/healthycommunities\\\"\\u003Eour moderator guidelines\\u003C/a\\u003E to help you grow a healthy community and ensure you know what\\u2019s expected of you as a moderator.\\u003C/p\\u003E\\u003C/li\\u003E\\n\\u003Cli\\u003E\\u003Cp\\u003ESubscribe to \\u003Ca href=\\\"/r/modnews\\\"\\u003Er/modnews\\u003C/a\\u003E! Official announcements specifically of interest to moderators will be posted here. Don\\u0026#39;t worry \\u2014 only the reddit admins can submit things there, so it won\\u0026#39;t clutter your front page too much.\\u003C/p\\u003E\\u003C/li\\u003E\\n\\u003Cli\\u003E\\u003Cp\\u003ECheck out \\u003Ca href=\\\"/r/modhelp\\\"\\u003Er/modhelp\\u003C/a\\u003E. It\\u0026#39;s a great place to get answers from your fellow moderators on best practices or how all your new tools work. Be sure to check out the sidebar for more resources!\\u003C/p\\u003E\\u003C/li\\u003E\\n\\u003Cli\\u003E\\u003Cp\\u003E\\u003Ca href=\\\"/r/ModSupport\\\"\\u003Er/ModSupport\\u003C/a\\u003E is where you can ask questions directly to the admins about policy or introduce ideas for mod specific features you\\u0026#39;d like to see implemented.\\u003C/p\\u003E\\u003C/li\\u003E\\n\\u003Cli\\u003E\\u003Cp\\u003EIf you have someone breaking \\u003Ca href=\\\"/help/contentpolicy\\\"\\u003Esite wide rules\\u003C/a\\u003E in your community or if you have a question you\\u0026#39;d prefer to ask privately, reddit admins can be reached via \\u003Ca href=\\\"http://www.reddit.com/message/compose?to=/r/reddit.com\\\"\\u003Emodmail in r/reddit.com\\u003C/a\\u003E.\\u003C/p\\u003E\\u003C/li\\u003E\\n\\u003C/ul\\u003E\\n\\n\\u003Cp\\u003EThanks for helping contribute to the site!\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8o48yt\", \"created\": 1498374566.0, \"created_utc\": 1498345766.0, \"context\": \"\", \"distinguished\": \"admin\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"Redefinition2\", \"likes\": null, \"replies\": \"\", \"id\": \"8o48wn\", \"subject\": \"invitation to moderate /r/Redefinition2\", \"was_comment\": false, \"score\": 0, \"author\": \"throwaway_the_fourth\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/Redefinition2\", \"new\": false, \"body\": \"**gadzooks! you are invited to become a moderator of [/r/Redefinition2: Redefinition2](/r/Redefinition2)!**\\n\\n*to accept*, visit the [moderators page for /r/Redefinition2](/r/Redefinition2/about/moderators) and click \\\"accept\\\".\\n\\n*otherwise,* if you did not expect to receive this, you can simply ignore this invitation or report it.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003E\\u003Cstrong\\u003Egadzooks! you are invited to become a moderator of \\u003Ca href=\\\"/r/Redefinition2\\\"\\u003E/r/Redefinition2: Redefinition2\\u003C/a\\u003E!\\u003C/strong\\u003E\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eto accept\\u003C/em\\u003E, visit the \\u003Ca href=\\\"/r/Redefinition2/about/moderators\\\"\\u003Emoderators page for /r/Redefinition2\\u003C/a\\u003E and click \\u0026quot;accept\\u0026quot;.\\u003C/p\\u003E\\n\\n\\u003Cp\\u003E\\u003Cem\\u003Eotherwise,\\u003C/em\\u003E if you did not expect to receive this, you can simply ignore this invitation or report it.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8o48wn\", \"created\": 1498374555.0, \"created_utc\": 1498345755.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": \"throwaway_the_videos\", \"likes\": null, \"replies\": \"\", \"id\": \"8gm8x1\", \"subject\": \"you are an approved submitter\", \"was_comment\": false, \"score\": 0, \"author\": null, \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": \"r/throwaway_the_videos\", \"new\": false, \"body\": \"you have been added as an approved submitter to [/r/throwaway_the_videos: My alternative to youtube subscriptions](/r/throwaway_the_videos).\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003Eyou have been added as an approved submitter to \\u003Ca href=\\\"/r/throwaway_the_videos\\\"\\u003E/r/throwaway_the_videos: My alternative to youtube subscriptions\\u003C/a\\u003E.\\u003C/p\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8gm8x1\", \"created\": 1496295266.0, \"created_utc\": 1496266466.0, \"context\": \"\", \"distinguished\": \"moderator\"}}, {\"kind\": \"t4\", \"data\": {\"first_message\": null, \"first_message_name\": null, \"subreddit\": null, \"likes\": null, \"replies\": \"\", \"id\": \"8bfxdc\", \"subject\": \"Hello, /u/<USERNAME>! Welcome to reddit!\", \"was_comment\": false, \"score\": 0, \"author\": \"reddit\", \"num_comments\": null, \"parent_id\": null, \"subreddit_name_prefixed\": null, \"new\": false, \"body\": \"Hello!\\r\\n\\r\\nHere\\u2019s some information to get you started with reddit.  \\r\\n\\r\\n### How it all works  \\r\\n\\r\\n1. Users post to communities, also known as subreddits. \\r\\n2. Other users vote and comment on those posts. \\r\\n3. Based on those votes, the best posts rise to the top for all to enjoy.\\r\\n\\r\\nUsers who post or comment earn karma points when their content gets voted up, or upvoted. \\r\\n\\r\\nAs you\\u2019re participating, be aware that each subreddit has its own unique personality and rules, usually found in their sidebar. \\r\\nThose are the basics! Once you poke around the site a bit, please feel free to check out a more in-depth explanation about [what reddit is and how it works](http://www.redditblog.com/2014/07/how-reddit-works.html). Happy redditing! :)\\r\\n\\r\\n### By the way...\\r\\n\\r\\n* [This is our Content Policy](https://www.reddit.com/help/contentpolicy?utm_source=reddit\\u0026utm_medium=welcomepm). These are the rules you need to follow to participate on Reddit.\\r\\n* We strongly recommend that you verify an email address with your account, so that you can reset your password by email. There is no other way to recover a forgotten password.\", \"dest\": \"<USERNAME>\", \"body_html\": \"\\u003C!-- SC_OFF --\\u003E\\u003Cdiv class=\\\"md\\\"\\u003E\\u003Cp\\u003EHello!\\u003C/p\\u003E\\n\\n\\u003Cp\\u003EHere\\u2019s some information to get you started with reddit.  \\u003C/p\\u003E\\n\\n\\u003Ch3\\u003EHow it all works\\u003C/h3\\u003E\\n\\n\\u003Col\\u003E\\n\\u003Cli\\u003EUsers post to communities, also known as subreddits. \\u003C/li\\u003E\\n\\u003Cli\\u003EOther users vote and comment on those posts. \\u003C/li\\u003E\\n\\u003Cli\\u003EBased on those votes, the best posts rise to the top for all to enjoy.\\u003C/li\\u003E\\n\\u003C/ol\\u003E\\n\\n\\u003Cp\\u003EUsers who post or comment earn karma points when their content gets voted up, or upvoted. \\u003C/p\\u003E\\n\\n\\u003Cp\\u003EAs you\\u2019re participating, be aware that each subreddit has its own unique personality and rules, usually found in their sidebar. \\nThose are the basics! Once you poke around the site a bit, please feel free to check out a more in-depth explanation about \\u003Ca href=\\\"http://www.redditblog.com/2014/07/how-reddit-works.html\\\"\\u003Ewhat reddit is and how it works\\u003C/a\\u003E. Happy redditing! :)\\u003C/p\\u003E\\n\\n\\u003Ch3\\u003EBy the way...\\u003C/h3\\u003E\\n\\n\\u003Cul\\u003E\\n\\u003Cli\\u003E\\u003Ca href=\\\"https://www.reddit.com/help/contentpolicy?utm_source=reddit\\u0026amp;utm_medium=welcomepm\\\"\\u003EThis is our Content Policy\\u003C/a\\u003E. These are the rules you need to follow to participate on Reddit.\\u003C/li\\u003E\\n\\u003Cli\\u003EWe strongly recommend that you verify an email address with your account, so that you can reset your password by email. There is no other way to recover a forgotten password.\\u003C/li\\u003E\\n\\u003C/ul\\u003E\\n\\u003C/div\\u003E\\u003C!-- SC_ON --\\u003E\", \"name\": \"t4_8bfxdc\", \"created\": 1494814836.0, \"created_utc\": 1494786036.0, \"context\": \"\", \"distinguished\": \"admin\"}}], \"before\": null}}"
+        },
+        "headers": {
+          "Accept-Ranges": "bytes",
+          "Connection": "keep-alive",
+          "Content-Length": "44293",
+          "Content-Type": "application/json; charset=UTF-8",
+          "Date": "Sat, 03 Mar 2018 20:26:28 GMT",
+          "Server": "snooserv",
+          "Strict-Transport-Security": "max-age=15552000; includeSubDomains; preload",
+          "Vary": "accept-encoding",
+          "Via": "1.1 varnish",
+          "X-Cache": "MISS",
+          "X-Cache-Hits": "0",
+          "X-Moose": "majestic",
+          "X-Served-By": "cache-pao17442-PAO",
+          "X-Timer": "S1520108788.857961,VS0,VE232",
+          "cache-control": "private, s-maxage=0, max-age=0, must-revalidate, max-age=0, must-revalidate",
+          "expires": "-1",
+          "set-cookie": "loid=0000000000014g6bq9.2.1494785872695.Z0FBQUFBQmFtd1R6MVNveXhwZlVxSldZSl9UVnpnV1UtVGg4UjZPTHdfWDZqOXd3TkljZFNhaUhEbjItdXpuZm05VkZXUzJ5MHpSclRqMDFLbGI1T183UmtJSWxVbmt0dUt6VkZoSzgwektGb21qeXdkdE9mbTZqWWRrZHJPenR0YTJOMjNCUHU2VGE; Domain=reddit.com; Max-Age=63071999; Path=/; expires=Mon, 02-Mar-2020 20:26:27 GMT; secure",
+          "x-content-type-options": "nosniff",
+          "x-frame-options": "SAMEORIGIN",
+          "x-ratelimit-remaining": "599.0",
+          "x-ratelimit-reset": "213",
+          "x-ratelimit-used": "1",
+          "x-ua-compatible": "IE=edge",
+          "x-xss-protection": "1; mode=block"
+        },
+        "status": {
+          "code": 200,
+          "message": "OK"
+        },
+        "url": "https://oauth.reddit.com/message/messages/?limit=100&raw_json=1"
+      }
+    },
+    {
+      "recorded_at": "2018-03-03T20:26:28",
+      "request": {
+        "body": {
+          "encoding": "utf-8",
+          "string": "api_type=json&id=t4_b2azyh"
+        },
+        "headers": {
+          "Accept": "*/*",
+          "Accept-Encoding": "identity",
+          "Authorization": "bearer <ACCESS_TOKEN>",
+          "Connection": "keep-alive",
+          "Content-Length": "26",
+          "Content-Type": "application/x-www-form-urlencoded",
+          "Cookie": "edgebucket=WdDOBvUdIkrtYJToHT; loid=0000000000014g6bq9.2.1494785872695.Z0FBQUFBQmFtd1R6MVNveXhwZlVxSldZSl9UVnpnV1UtVGg4UjZPTHdfWDZqOXd3TkljZFNhaUhEbjItdXpuZm05VkZXUzJ5MHpSclRqMDFLbGI1T183UmtJSWxVbmt0dUt6VkZoSzgwektGb21qeXdkdE9mbTZqWWRrZHJPenR0YTJOMjNCUHU2VGE; session_tracker=pow9q5noN3rijfcYxz.0.1520108787892.Z0FBQUFBQmFtd1R6TGVwS29yZVJDeF8tQnM5RXpZWUw4R0RLWVZWLXl4UV8yTzBfV2VXZWNlSVpKTy00ZFNmVGpQYWZ2dkNKZkl0VFJidHo4djRWVmJFOFJXZnpyVDBHVUlhbmxPSENYay1NWlliamwzTzl0cTNmeTZuamppWmE1NHlsTEpNb3ZqNk0",
+          "User-Agent": "<USER_AGENT> PRAW/5.4.0.dev0 prawcore/0.14.0"
+        },
+        "method": "POST",
+        "uri": "https://oauth.reddit.com/api/del_msg?raw_json=1"
+      },
+      "response": {
+        "body": {
+          "encoding": "UTF-8",
+          "string": "{}"
+        },
+        "headers": {
+          "Accept-Ranges": "bytes",
+          "Connection": "keep-alive",
+          "Content-Length": "2",
+          "Content-Type": "application/json; charset=UTF-8",
+          "Date": "Sat, 03 Mar 2018 20:26:28 GMT",
+          "Server": "snooserv",
+          "Strict-Transport-Security": "max-age=15552000; includeSubDomains; preload",
+          "Via": "1.1 varnish",
+          "X-Cache": "MISS",
+          "X-Cache-Hits": "0",
+          "X-Moose": "majestic",
+          "X-Served-By": "cache-pao17442-PAO",
+          "X-Timer": "S1520108788.185585,VS0,VE318",
+          "cache-control": "private, s-maxage=0, max-age=0, must-revalidate, max-age=0, must-revalidate",
+          "expires": "-1",
+          "set-cookie": "session_tracker=pow9q5noN3rijfcYxz.0.1520108788430.Z0FBQUFBQmFtd1QwZTUzQnJfbTRWMTR0MnR5UTB6bG92NnlraU9ZZGFlaHZXV3kzd2NTWDZOQU42NUp5SzRxdHl6MTZ3S1BBOVZvNC1BNmtldUttY0paeW9nd1hzaGdqaHFBR1hmRnRCckZWN3lDQXVXZDd4UUloUEJPUjEwVDRtU0w1WDFwbFpVYlU; Domain=reddit.com; Max-Age=7199; Path=/; expires=Sat, 03-Mar-2018 22:26:28 GMT; secure",
+          "x-content-type-options": "nosniff",
+          "x-frame-options": "SAMEORIGIN",
+          "x-ratelimit-remaining": "598.0",
+          "x-ratelimit-reset": "212",
+          "x-ratelimit-used": "2",
+          "x-ua-compatible": "IE=edge",
+          "x-xss-protection": "1; mode=block"
+        },
+        "status": {
+          "code": 200,
+          "message": "OK"
+        },
+        "url": "https://oauth.reddit.com/api/del_msg?raw_json=1"
+      }
+    }
+  ],
+  "recorded_with": "betamax/0.8.0"
+}
\ No newline at end of file
diff --git a/tests/integration/models/reddit/test_message.py b/tests/integration/models/reddit/test_message.py
--- a/tests/integration/models/reddit/test_message.py
+++ b/tests/integration/models/reddit/test_message.py
@@ -42,6 +42,13 @@ def test_block(self, _):
                 assert False, 'no message found'
             message.block()
 
+    @mock.patch('time.sleep', return_value=None)
+    def test_delete(self, _):
+        self.reddit.read_only = False
+        with self.recorder.use_cassette('TestMessage.test_delete'):
+            message = next(self.reddit.inbox.messages())
+            message.delete()
+
     @mock.patch('time.sleep', return_value=None)
     def test_mark_read(self, _):
         self.reddit.read_only = False