new script - wiki mention notifier

This commit is contained in:
Bhupesh-V 2024-11-06 00:07:19 +05:30
parent ea7b0e8a37
commit 7237ed4e02
2 changed files with 95 additions and 0 deletions

35
.github/workflows/wiki-mention.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name : Wiki Mention Notifier
on:
workflow_dispatch:
inputs:
username:
description: 'The username of the community member to notify'
required: true
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Update Wiki
env:
REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }}
REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET }}
REDDIT_PASSWORD: ${{ secrets.REDDIT_PASSWORD }}
REDDIT_USERNAME: ${{ secrets.REDDIT_USERNAME }}
run: |
cd wiki-mention
python main.py ${{ github.event.inputs.username }}

60
wiki-mention/main.py Normal file
View File

@ -0,0 +1,60 @@
import praw
import os
# Reddit API credentials
client_id = os.environ["REDDIT_CLIENT_ID"]
client_secret = os.environ["REDDIT_CLIENT_SECRET"]
reddit_pass = os.environ["REDDIT_PASSWORD"]
username = os.environ["REDDIT_USERNAME"]
user_agent = "Wiki Mention Notifier"
sub = "developersIndia"
# Create a Reddit instance
reddit = praw.Reddit(
client_id=client_id,
client_secret=client_secret,
password=reddit_pass,
user_agent=user_agent,
username=username,
)
def send_message(reddit, username):
message_subject = 'Woohoo! Your advice/perspective is now part of our wiki!'
message_text = """
Hi there,\n
It looks like one of your comments on r/developersIndia was picked-up by the volunteer team to be part of our [community-driven wiki](https://wiki.developersindia.in/).\n
- You can find your advice by searching your username in our [Wiki](https://wiki.developersindia.in/).\n
- We can't thank you enough for your valuable contribution to our community 🧡\n\n
Please keep contributing productively!\n
Cheers,\n
The r/developersIndia Community Team
"""
reddit.redditor(username).message(
subject=message_subject, message=message_text, from_subreddit=reddit.subreddit(sub)
)
def add_mod_note_good_contributor(reddit, username):
subreddit = reddit.subreddit(sub)
subreddit.mod.notes.create(
redditor=username,
label="HELPFUL_USER",
note="Their advice/perspective was mentioned in our wiki.",
)
def main():
if len(os.sys.argv) != 2:
print("Usage: python main.py <username>")
return
reddit_username = os.sys.argv[1]
send_message(reddit, reddit_username)
add_mod_note_good_contributor(reddit, reddit_username)
print(f"Sent wiki mention modmail to {reddit_username}")
if __name__ == "__main__":
main()