Last active
January 6, 2025 07:15
-
-
Save x1unix/c05ae043574ffa3523c716225d41bf67 to your computer and use it in GitHub Desktop.
deck-age-poll-reddit.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "d99edc1f-2ab3-43bc-955d-3449c12a2ca6", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
":: Fetching comments for post 195t2pt...\n", | |
":: Resolving comments tree...\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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bNhwVsslhDeQixWFOMbixYvJzMxk5syZJ70UqGvXrsyaNYv333+fiy66iBtvvJFXXnmF66+/nunTp9O2bVsWL17MTz/9BIBe//e/e9955x3Gjh3L6NGjmTx5MomJiRQWFrJz5042bNhwwpndxzIYDHzzzTeMHj2ac845hylTpjB06FDCw8MpLi7mjz/+YPPmzfVeLnWssLAw/v3vf/PII49www03cO2111JQUMBTTz2Fv78/TzzxRO20kyZN4p133uH6669nypQpFBQU8MILLxASElJvzpEjR3LffffhcrmYOXMmpaWlPPXUUwCUlJQwbNgwJk6cSMeOHQkODmbdunX8+OOPXHbZZafNLoTXU/tMMyG0ZMKECYrJZFJyc3Prneaaa65RjEajkp2drShKzVnLl112mRIUFKQEBwcrl19+ubJo0SIFUL799ts67928ebNy1VVXKTExMYqfn58SFxenDB8+vPYs79MpKSlRZsyYofTr108JCQlRjEajEhMTo4wcOVJ58803lYqKitppj559/fnnn590XrNnz1a6d++umEwmJTQ0VLnkkkuU7du3nzDdvHnzlE6dOin+/v5K586dlU8//bTes69nzpypPPXUU0pSUpJiMpmUXr16KT/99FPtdNXV1codd9yhdO/eXQkJCVEsFovSoUMH5YknnqiTXQhfJXf0EqIJzJgxg8cee4yDBw+SlJSkdpwml5aWRuvWrXnxxRd54IEH1I4jhMeS3ddCnKVZs2YB0LFjR+x2O8uWLeP111/n+uuv94lCFkK4j5SyEGcpICCAV155hbS0NKxWK8nJyTz00EM89thjakcTQngY2X0thBBCaIRcEiWEEEJohJSyEEIIoRFSykIIIYRGSCkLIYQQGiGlLIQQQmiElLIQQgihEVLKQgghhEZIKQshhBAaIaUshBBCaISUshBCCKERUspCCCGERkgpCyGEEBohpSyEEEJohJSyEEIIoRFSykIIIYRGSCkLIYQQGiGlLIQQQmiElLIQQgihEVLKQgghhEZIKQshhBAaIaUshBBCaISUshBCCKERUspCCCGERkgpCyGEEBohpSyEEEJohJSyEEIIoRFSykL4mOeee45+/foRHBxMTEwMEyZMYPfu3XWmURSFJ598koSEBCwWC0OHDmX79u2nnG9aWhq33HILrVu3xmKx0KZNG5544glsNlud6XQ63QmPt99+2+3LKYQnklIWwsesXLmSqVOnsnbtWpYuXYrD4WDUqFFUVFTUTvPCCy/w8ssvM2vWLNatW0dcXBwjR46krKys3vnu2rULl8vFO++8w/bt23nllVd4++23eeSRR06Yds6cOWRlZdU+brzxxiZZViE8jU5RFEXtEEII9eTl5RETE8PKlSs5//zzURSFhIQEpk2bxkMPPQSA1WolNjaWmTNncvvtt5/xvF988UXeeustDhw4UPucTqfj66+/ZsKECe5eFCE8nmwpC+HjSkpKAIiIiAAgNTWV7OxsRo0aVTuN2WxmyJAhrF69usHzPjrfY919991ERUXRr18/3n77bVwu11ksgRDew6h2ACGEehRF4b777uPcc8+la9euAGRnZwMQGxtbZ9rY2FjS09PPeN779+/njTfe4D//+U+d55955hkuuOACLBYLv/zyC/fffz/5+fk89thjZ7k0Qng+KWUhfNjdd9/Nli1bWLVq1Qmv6XS6Oj8rilL73B133MH8+fNrXysvL68zbWZmJmPGjOHKK6/k1ltvrfPaseXbs2dPAJ5++mkpZSGQ3ddC+Kx//OMffPfddyxfvpykpKTa5+Pi4oC/t5iPys3Nrd16fvrpp9m0aVPt41iZmZkMGzaMgQMH8u677542x4ABAygtLSUnJ+csl0gIzyelLISPURSFu+++m6+++oply5bRunXrOq+3bt2auLg4li5dWvuczWZj5cqVDBo0CICYmBjatm1b+zjq8OHDDB06lN69ezNnzhz0+tP/itm4cSP+/v6EhYW5ZwGF8GCy+1oIHzN16lQ+/vhjvv32W4KDg2u3iENDQ7FYLOh0OqZNm8aMGTNo164d7dq1Y8aMGQQEBDBx4sR655uZmcnQoUNJTk7mpZdeIi8vr/a1o1vf33//PdnZ2QwcOBCLxcLy5ct59NFHue222zCbzU274EJ4ALkkSggfc/yx4qPmzJnD5MmTgZqt6aeeeop33nmHoqIi+vfvz5tvvll7MtjJzJ07l5tuuumkrx39NfPjjz/y8MMPs2/fPlwuFykpKdx6661MnToVo1G2EYSQUhZCCCE0Qo4pCyGEEBohpSyEEEJohJSyEEIIoRFSykIIIYRGSCkLIYQQGiGlLIQQQmiElLIQQgihEVLKQgghhEZIKQshhBAaIaUshBBCaISUshBCCKER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bfszrZC9OWVqx9CcBq2tzz33HP369SM4OJiYmBgmTJjA7t2760wzefJkdDpdnceAAQNOO+/x48eTnJyMv78/8fHxTJo0iczMzDrTHDx4kIsvvpjAwECioqK45557sNma7tKXzXmb2Ve8r8nmL5rHocps7mnbHavRX+0ooplIIXuGj/+UreXjNWiNXblyJVOnTmXt2rUsXboUh8PBqFGjqKioqDPdmDFjyMrKqn0sWrTotPMeNmwYn332Gbt37+bLL79k//79XHHFFbWvO51Oxo0bR0VFBatWrWLBggV8+eWX3H///Q1ZhAb5co+c4OUtNpfu59Huw1Bw7313hfZIIXuO7zdn4nDKiHvHOqvrlPPy8oiJiWHlypWcf/75QP33CG2o7777jgkTJmC1WvHz82Px4sVcdNFFHDp0iISEBAAWLFjA5MmTyc3NbdSF4adSYa9g2GfDqHJUuXW+Ql23hHVj2ka5htlbSSF7njk39WNYhxi1Y2jGWa25JSUlAERERNR5fsWKFcTExNC+fXumTJlCbm5ug+ZbWFjIRx99xKBBg2rvRbpmzRq6du1aW8gAo0ePxmq18tdff53NYpzUwgMLpZC90PvFW/myywi1Y4gmIIXsmb7deFjtCJrS6LVXURTuu+8+zj33XLp27Vr7/NixY/noo49YtmwZ//nPf1i3bh3Dhw/Haj39GcwPPfQQgYGBREZGcvDgQb799tva17Kzs4mNja0zfXh4OCaTiexs959aLyd4ea/pVQdY3bq/2jGEG0khe64lO3KotMlwuEc1eg2+++672bJlC5988kmd56+++mrGjRtH165dufjii1m8eDF79uxh4cKaXYZ33HEHQUFBtY9j/etf/2Ljxo0sWbIEg8HADTfcUOceozrdiccDFUU56fNn40DxAXYW7nTrPIV2OBQH9/uVsje2g9pRhBtIIXu2SpuTJdtz1I6hGY1ai//xj3/w3XffsXz5cpKSkk45bXx8PC1btmTv3r0APP3002zatKn2cayoqCjat2/PyJEjWbBgAYsWLWLt2rUAxMXFnbBFXFRUhN1uP2EL+mz9lP6TW+cntKfcXsHUyCDyQuLUjiLOghSyd/hadmHXatCarCgKd999N1999RXLli2jdevWp31PQUEBhw4dqh3sOSYmhrZt29Y+TvVZQO1u74EDB7Jt2zaysrJqp1myZAlm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", | |
"text/plain": [ | |
"<Figure size 1000x600 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Ages: 1137\n", | |
"Comments: 1248\n" | |
] | |
} | |
], | |
"source": [ | |
"import re\n", | |
"import time\n", | |
"import requests\n", | |
"import matplotlib.pyplot as plt\n", | |
"import praw\n", | |
"from praw.models import MoreComments\n", | |
"\n", | |
"subreddit = \"SteamDeck\"\n", | |
"post_id = \"195t2pt\"\n", | |
"\n", | |
"age_regex = r\"\\b([1-9][0-9])\\b\"\n", | |
"ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'\n", | |
"\n", | |
"reddit = praw.Reddit(\n", | |
" client_id = \"YQoIpFRgYtB1-zB5py_ePQ\",\n", | |
" client_secret = \"Ni26VRpcebMKVb4YByCB-AyxVq52dQ\",\n", | |
" user_agent = ua\n", | |
")\n", | |
"\n", | |
"def parse_ages(msg):\n", | |
" return [int(age) for age in re.findall(age_regex, msg)]\n", | |
"\n", | |
"def fetch_ages_from_comments():\n", | |
" print(f\":: Fetching comments for post {post_id}...\")\n", | |
" post = reddit.submission(post_id)\n", | |
" print(\":: Resolving comments tree...\")\n", | |
" post.comments.replace_more(limit=None)\n", | |
" ages = []\n", | |
" count = 0\n", | |
" queue = post.comments[:]\n", | |
" while queue:\n", | |
" count += 1\n", | |
" comment = queue.pop(0)\n", | |
" ages += parse_ages(comment.body)\n", | |
" queue.extend(comment.replies)\n", | |
" return (ages, count)\n", | |
"\n", | |
"def extract_ages2(comments):\n", | |
" # TODO filter all comments that contain age and map them as a collection with numbers\n", | |
" ages = map(\n", | |
" lambda c: re.findall(age_regex, c.body),\n", | |
" filter(\n", | |
" lambda c: c['kind'] == 't1', \n", | |
" comments\n", | |
" )\n", | |
" )\n", | |
" ages = [int(age) for sublist in ages for age in sublist]\n", | |
" return ages\n", | |
"\n", | |
"def render_pie(ages):\n", | |
" age_groups = {\n", | |
" \"<=18\": len([age for age in ages if age <= 18]),\n", | |
" \"20-25\": len([age for age in ages if 20 <= age <= 25]),\n", | |
" \"25-30\": len([age for age in ages if 25 < age <= 30]),\n", | |
" \"30-40\": len([age for age in ages if 30 < age <= 40]),\n", | |
" \"40-50\": len([age for age in ages if 40 < age <= 50]),\n", | |
" \"50+\": len([age for age in ages if age > 50])\n", | |
" }\n", | |
" plt.figure(figsize=(10, 6))\n", | |
" plt.pie(age_groups.values(), labels=age_groups.keys(), autopct='%1.1f%%')\n", | |
" plt.title('Age Groups')\n", | |
" plt.show()\n", | |
"\n", | |
"def main():\n", | |
" (ages, posts_count) = fetch_ages_from_comments()\n", | |
" render_pie(ages)\n", | |
" print(f\"Ages: {len(ages)}\")\n", | |
" print(f\"Comments: {posts_count}\")\n", | |
"\n", | |
"if __name__ == \"__main__\":\n", | |
" main()\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "9119e734-ffb2-49e6-acbd-217fc9dca555", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "10633d3f-ce9f-4b4a-8a6c-6e5b57a650ee", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.11.6" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment