From 1092c4a31c783970dedd3959ea2109f4e14a29eb Mon Sep 17 00:00:00 2001 From: wassname <1103714+wassname@users.noreply.github.com> Date: Wed, 25 Dec 2024 18:25:40 +0800 Subject: [PATCH] misc --- nbs/mjc_001_download.ipynb | 961 ++------ nbs/mjc_004_process.ipynb | 4542 ++++++++++++++++++++++++++++++++---- nbs/mjc_005_llm.ipynb | 888 +++++++ poetry.lock | 70 +- 4 files changed, 5182 insertions(+), 1279 deletions(-) create mode 100644 nbs/mjc_005_llm.ipynb diff --git a/nbs/mjc_001_download.ipynb b/nbs/mjc_001_download.ipynb index 9a2176fc..deda8b19 100644 --- a/nbs/mjc_001_download.ipynb +++ b/nbs/mjc_001_download.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 1, "id": "198de680", "metadata": { "ExecuteTime": { @@ -20,16 +20,7 @@ "start_time": "2022-06-28T02:34:01.864103Z" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "# autoreload your package\n", "%load_ext autoreload\n", @@ -39,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 2, "id": "a372ed7c", "metadata": { "ExecuteTime": { @@ -51,10 +42,10 @@ { "data": { "text/plain": [ - "2" + "1" ] }, - "execution_count": 19, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -91,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 3, "id": "a91f5c82", "metadata": {}, "outputs": [ @@ -101,7 +92,7 @@ "True" ] }, - "execution_count": 20, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -115,10 +106,18 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 4, "id": "54a03c3a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Version 7.7.1 of praw is outdated. Version 7.8.1 was released Friday October 25, 2024.\n" + ] + } + ], "source": [ "\n", "import praw\n", @@ -134,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 5, "id": "fc3cb5ba", "metadata": {}, "outputs": [ @@ -144,7 +143,7 @@ "Subreddit(display_name='rational')" ] }, - "execution_count": 22, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -185,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 6, "id": "874c72dd", "metadata": {}, "outputs": [ @@ -195,7 +194,7 @@ "10492" ] }, - "execution_count": 23, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -224,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "id": "1d1601bb", "metadata": {}, "outputs": [ @@ -274,7 +273,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 8, "id": "c8ac4023", "metadata": {}, "outputs": [], @@ -305,7 +304,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 9, "id": "a9fe1659", "metadata": {}, "outputs": [ @@ -330,7 +329,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 10, "id": "49fc099b", "metadata": {}, "outputs": [], @@ -342,7 +341,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 11, "id": "5b4856f6", "metadata": {}, "outputs": [ @@ -366,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 12, "id": "5d7d0214", "metadata": {}, "outputs": [], @@ -439,214 +438,7 @@ }, { "cell_type": "code", - "execution_count": 74, - "id": "1695432e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'comment_limit': None,\n", - " 'comment_sort': 'confidence',\n", - " '_reddit': ,\n", - " 'approved_at_utc': None,\n", - " 'subreddit': Subreddit(display_name='rational'),\n", - " 'selftext': 'Welcome to the Monday request and recommendation thread. Are you looking something to scratch an itch? Post a comment stating your request! Did you just read something that really hit the spot, \"rational\" or otherwise? Post a comment recommending it! Note that you are welcome (and encouraged) to post recommendations directly to the subreddit, so long as you think they more or less fit the criteria on the sidebar or your understanding of this community, but this thread is much more loose about whether or not things \"belong\". Still, if you\\'re looking for beginner recommendations, perhaps [take a look at the wiki](https://www.reddit.com/r/rational/wiki)?\\n\\nIf you see someone making a top level post asking for recommendation, kindly direct them to the existence of these threads.\\n\\n[Previous automated recommendation threads](https://www.reddit.com/r/rational/search?q=%22Monday+Request+and+Recommendation+Thread%22&restrict_sr=on&sort=new&t=all) \\n[Other recommendation threads](http://pastebin.com/SbME9sXy)',\n", - " 'author_fullname': 't2_6l4z3',\n", - " 'saved': False,\n", - " 'mod_reason_title': None,\n", - " 'gilded': 0,\n", - " 'clicked': False,\n", - " 'title': '[D] Monday Request and Recommendation Thread',\n", - " 'link_flair_richtext': [],\n", - " 'subreddit_name_prefixed': 'r/rational',\n", - " 'hidden': False,\n", - " 'pwls': 6,\n", - " 'link_flair_css_class': None,\n", - " 'downs': 0,\n", - " 'thumbnail_height': None,\n", - " 'top_awarded_type': None,\n", - " 'hide_score': False,\n", - " 'name': 't3_1gzkrd4',\n", - " 'quarantine': False,\n", - " 'link_flair_text_color': 'dark',\n", - " 'upvote_ratio': 0.97,\n", - " 'author_flair_background_color': None,\n", - " 'subreddit_type': 'public',\n", - " 'ups': 31,\n", - " 'total_awards_received': 0,\n", - " 'media_embed': {},\n", - " 'thumbnail_width': None,\n", - " 'author_flair_template_id': None,\n", - " 'is_original_content': False,\n", - " 'user_reports': [],\n", - " 'secure_media': None,\n", - " 'is_reddit_media_domain': False,\n", - " 'is_meta': False,\n", - " 'category': None,\n", - " 'secure_media_embed': {},\n", - " 'link_flair_text': None,\n", - " 'can_mod_post': False,\n", - " 'score': 31,\n", - " 'approved_by': None,\n", - " 'is_created_from_ads_ui': False,\n", - " 'author_premium': True,\n", - " 'thumbnail': 'self',\n", - " 'edited': False,\n", - " 'author_flair_css_class': None,\n", - " 'author_flair_richtext': [],\n", - " 'gildings': {},\n", - " 'post_hint': 'self',\n", - " 'content_categories': None,\n", - " 'is_self': True,\n", - " 'mod_note': None,\n", - " 'created': 1732546813.0,\n", - " 'link_flair_type': 'text',\n", - " 'wls': 6,\n", - " 'removed_by_category': None,\n", - " 'banned_by': None,\n", - " 'author_flair_type': 'text',\n", - " 'domain': 'self.rational',\n", - " 'allow_live_comments': False,\n", - " 'selftext_html': '

Welcome to the Monday request and recommendation thread. Are you looking something to scratch an itch? Post a comment stating your request! Did you just read something that really hit the spot, "rational" or otherwise? Post a comment recommending it! Note that you are welcome (and encouraged) to post recommendations directly to the subreddit, so long as you think they more or less fit the criteria on the sidebar or your understanding of this community, but this thread is much more loose about whether or not things "belong". Still, if you're looking for beginner recommendations, perhaps take a look at the wiki?

\\n\\n

If you see someone making a top level post asking for recommendation, kindly direct them to the existence of these threads.

\\n\\n

Previous automated recommendation threads
\\nOther recommendation threads

\\n
',\n", - " 'likes': None,\n", - " 'suggested_sort': None,\n", - " 'banned_at_utc': None,\n", - " 'view_count': None,\n", - " 'archived': False,\n", - " 'no_follow': False,\n", - " 'is_crosspostable': True,\n", - " 'pinned': False,\n", - " 'over_18': False,\n", - " 'preview': {'images': [{'source': {'url': 'https://external-preview.redd.it/P8lS0kk6BFe2IEo6TxCZd1LVwksc34IkzGTVx_SCc8w.jpg?auto=webp&s=b9f5c4e4867fbffb2c1ff45dd70aa338d1e3f40c',\n", - " 'width': 150,\n", - " 'height': 150},\n", - " 'resolutions': [{'url': 'https://external-preview.redd.it/P8lS0kk6BFe2IEo6TxCZd1LVwksc34IkzGTVx_SCc8w.jpg?width=108&crop=smart&auto=webp&s=3d74dbe4f1d67cc8b587db9aa01762f26e269bcf',\n", - " 'width': 108,\n", - " 'height': 108}],\n", - " 'variants': {},\n", - " 'id': 'OgFzGCIRw1ZxjMOSkfV1OiH-_nQiZl8rzSonmOAuhGs'}],\n", - " 'enabled': False},\n", - " 'all_awardings': [],\n", - " 'awarders': [],\n", - " 'media_only': False,\n", - " 'can_gild': False,\n", - " 'spoiler': False,\n", - " 'locked': False,\n", - " 'author_flair_text': None,\n", - " 'treatment_tags': [],\n", - " 'visited': False,\n", - " 'removed_by': None,\n", - " 'num_reports': None,\n", - " 'distinguished': None,\n", - " 'subreddit_id': 't5_2rdak',\n", - " 'author_is_blocked': False,\n", - " 'mod_reason_by': None,\n", - " 'removal_reason': None,\n", - " 'link_flair_background_color': '',\n", - " 'id': '1gzkrd4',\n", - " 'is_robot_indexable': True,\n", - " 'report_reasons': None,\n", - " 'author': Redditor(name='AutoModerator'),\n", - " 'discussion_type': None,\n", - " 'num_comments': 67,\n", - " 'send_replies': False,\n", - " 'contest_mode': False,\n", - " 'mod_reports': [],\n", - " 'author_patreon_flair': False,\n", - " 'author_flair_text_color': None,\n", - " 'permalink': '/r/rational/comments/1gzkrd4/d_monday_request_and_recommendation_thread/',\n", - " 'stickied': False,\n", - " 'url': 'https://www.reddit.com/r/rational/comments/1gzkrd4/d_monday_request_and_recommendation_thread/',\n", - " 'subreddit_subscribers': 26213,\n", - " 'created_utc': 1732546813.0,\n", - " 'num_crossposts': 0,\n", - " 'media': None,\n", - " 'is_video': False,\n", - " '_fetched': True,\n", - " '_additional_fetch_params': {},\n", - " '_comments_by_id': {'t1_lywwuzg': Comment(id='lywwuzg'),\n", - " 't1_lywyz00': Comment(id='lywyz00'),\n", - " 't1_lyxfk6y': Comment(id='lyxfk6y'),\n", - " 't1_lyzjfer': Comment(id='lyzjfer'),\n", - " 't1_lz14liv': Comment(id='lz14liv'),\n", - " 't1_lzi7ua2': Comment(id='lzi7ua2'),\n", - " 't1_lzoj718': Comment(id='lzoj718'),\n", - " 't1_m04olfu': Comment(id='m04olfu'),\n", - " 't1_m06o6iy': Comment(id='m06o6iy'),\n", - " 't1_m08zbyx': Comment(id='m08zbyx'),\n", - " 't1_lyyqen0': Comment(id='lyyqen0'),\n", - " 't1_lzc388p': Comment(id='lzc388p'),\n", - " 't1_lzeagkk': Comment(id='lzeagkk'),\n", - " 't1_lzeazep': Comment(id='lzeazep'),\n", - " 't1_lzfsz3z': Comment(id='lzfsz3z'),\n", - " 't1_lywzkry': Comment(id='lywzkry'),\n", - " 't1_lyx6ej2': Comment(id='lyx6ej2'),\n", - " 't1_m1v01t0': Comment(id='m1v01t0'),\n", - " 't1_lyx59dk': Comment(id='lyx59dk'),\n", - " 't1_lyzwab9': Comment(id='lyzwab9'),\n", - " 't1_lz89juk': Comment(id='lz89juk'),\n", - " 't1_lyz7lj3': Comment(id='lyz7lj3'),\n", - " 't1_lyzc0zi': Comment(id='lyzc0zi'),\n", - " 't1_lzleff9': Comment(id='lzleff9'),\n", - " 't1_lyy9ze8': Comment(id='lyy9ze8'),\n", - " 't1_lz1p95j': Comment(id='lz1p95j'),\n", - " 't1_lyxbwg0': Comment(id='lyxbwg0'),\n", - " 't1_lyxzcfi': Comment(id='lyxzcfi'),\n", - " 't1_lz8uv26': Comment(id='lz8uv26'),\n", - " 't1_lzaklle': Comment(id='lzaklle'),\n", - " 't1_lzht3td': Comment(id='lzht3td'),\n", - " 't1_m10vi42': Comment(id='m10vi42'),\n", - " 't1_lyzdwx4': Comment(id='lyzdwx4'),\n", - " 't1_lz8ahfk': Comment(id='lz8ahfk'),\n", - " 't1_lz1pdzv': Comment(id='lz1pdzv'),\n", - " 't1_lyyh4b2': Comment(id='lyyh4b2'),\n", - " 't1_lyykg4u': Comment(id='lyykg4u'),\n", - " 't1_lyzm968': Comment(id='lyzm968'),\n", - " 't1_lz02ae9': Comment(id='lz02ae9'),\n", - " 't1_lyy56kf': Comment(id='lyy56kf'),\n", - " 't1_lyzhtis': Comment(id='lyzhtis'),\n", - " 't1_lyyikoa': Comment(id='lyyikoa'),\n", - " 't1_lzzmtut': Comment(id='lzzmtut'),\n", - " 't1_m00lftr': Comment(id='m00lftr'),\n", - " 't1_lyyawbp': Comment(id='lyyawbp'),\n", - " 't1_lzinw1l': Comment(id='lzinw1l'),\n", - " 't1_lyy7rpu': Comment(id='lyy7rpu'),\n", - " 't1_lz8wja2': Comment(id='lz8wja2'),\n", - " 't1_lz8x6dj': Comment(id='lz8x6dj'),\n", - " 't1_lz8z5hx': Comment(id='lz8z5hx'),\n", - " 't1_lyzoxmo': Comment(id='lyzoxmo'),\n", - " 't1_lz2ae57': Comment(id='lz2ae57'),\n", - " 't1_lz527vf': Comment(id='lz527vf'),\n", - " 't1_lz54evx': Comment(id='lz54evx'),\n", - " 't1_lz55q32': Comment(id='lz55q32'),\n", - " 't1_lz5829g': Comment(id='lz5829g'),\n", - " 't1_lz59zbc': Comment(id='lz59zbc'),\n", - " 't1_lz5cp7q': Comment(id='lz5cp7q'),\n", - " 't1_lz5l753': Comment(id='lz5l753'),\n", - " 't1_lz5o6ma': Comment(id='lz5o6ma'),\n", - " 't1_lyzrx5x': Comment(id='lyzrx5x'),\n", - " 't1_lz0zxas': Comment(id='lz0zxas'),\n", - " 't1_lzzn0ew': Comment(id='lzzn0ew'),\n", - " 't1_m01cvop': Comment(id='m01cvop'),\n", - " 't1_m010glc': Comment(id='m010glc'),\n", - " 't1_lz5p4bz': Comment(id='lz5p4bz')},\n", - " 'num_duplicates': 0,\n", - " '_comments': }" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "submission.__dict__" - ] - }, - { - "cell_type": "code", - "execution_count": 86, + "execution_count": 14, "id": "af0eb6bb", "metadata": {}, "outputs": [], @@ -669,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 15, "id": "7b210872", "metadata": {}, "outputs": [ @@ -679,7 +471,7 @@ "PosixPath('../data/cache2')" ] }, - "execution_count": 87, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -692,7 +484,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 16, "id": "e13fca40", "metadata": {}, "outputs": [ @@ -702,7 +494,7 @@ "PosixPath('../data/json3')" ] }, - "execution_count": 88, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -715,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 17, "id": "d0c1a164", "metadata": {}, "outputs": [], @@ -764,7 +556,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "964cebcec7994430abb824467c124659", + "model_id": "e76993256a34446daad91b5c55943f78", "version_major": 2, "version_minor": 0 }, @@ -779,599 +571,156 @@ "name": "stdout", "output_type": "stream", "text": [ - "## [D] Monday Request and Recommendation Thread\n", + "## [RT][FF] Scar's Samsara 8: Asura. The final struggle before the end.\n", "\n", - "* Author: u/AutoModerator *\n", - "* URL: https://www.reddit.com/r/rational/comments/1g3gg9n/d_monday_request_and_recommendation_thread/\n", - "* Score: 29\n", + "* Author: u/Sophronius *The Need to Become Stronger**\n", + "* URL: https://www.fanfiction.net/s/12593545/8/Scar-s-Samsara\n", + "* Score: 40\n", "\n", - "* Created: 2024-10-14T14:00:14\n", + "* Created: 2017-09-10T20:43:40\n", "\n", "### Post:\n", "\n", - "Welcome to the Monday request and recommendation thread. Are you looking something to scratch an itch? Post a comment stating your request! Did you just read something that really hit the spot, \"rational\" or otherwise? Post a comment recommending it! Note that you are welcome (and encouraged) to post recommendations directly to the subreddit, so long as you think they more or less fit the criteria on the sidebar or your understanding of this community, but this thread is much more loose about whether or not things \"belong\". Still, if you're looking for beginner recommendations, perhaps [take a look at the wiki](https://www.reddit.com/r/rational/wiki)?\n", - "\n", - "If you see someone making a top level post asking for recommendation, kindly direct them to the existence of these threads.\n", - "\n", - "[Previous automated recommendation threads](https://www.reddit.com/r/rational/search?q=%22Monday+Request+and+Recommendation+Thread%22&restrict_sr=on&sort=new&t=all) \n", - "[Other recommendation threads](http://pastebin.com/SbME9sXy)\n", + "[Link to content](https://www.fanfiction.net/s/12593545/8/Scar-s-Samsara)\n", "\n", "### Comments:\n", "\n", - "> **u/Nivirce** [+25] (a day later)\n", + "> **u/Kosijenac** [+6] (25 minutes later)\n", "> \n", - "> I am once again recommending **An Undertow of Sand** ([FFN](https://www.fanfiction.net/s/13894611/1/An-Undertow-of-Sand) - [AO3](https://archiveofourown.org/works/32244394/chapters/79914832) - [SB](https://forums.spacebattles.com/threads/an-undertow-of-sand-percy-jackson-and-the-cthulhu-mythos.941042/) - [SV ](https://forums.sufficientvelocity.com/threads/an-undertow-of-sand-percy-jackson-and-the-cthulhu-mythos.90629/)- [QQ](https://forum.questionablequesting.com/threads/an-undertow-of-sand-percy-jackson-and-the-cthulhu-mythos.15568/)) by Shujin, A PJO/Cthulhu Mythos fusion that hadn't been updated for a year, until last week when we finally got a new update.\n", + "> I report thar this has managed to elicit the proper giddiness/suppressed maniacal giggling that a good tense action scene does in me.\n", "> \n", - "> **Premisse**: In the Cthulhu Mythos, Lovecraft implies that several of the Great Old Ones and Other Gods were worshipped through history by multiple cultures under different names. The Hook of Percy Jackson canon is the idea that the gods, heros and monsters of ancient myth really existed and not only that that they exist to this day and have influence that is hidden from common people. This story essentially joins these two ideas, with some adaptations: There are several types of gods, and only some of them are Lovecraftian (usually, but not always, protegenoi/primordial gods.\n", - "> \n", - "> Additionally, as the setting of the story is the mid-2000s, Lovecraft himself is a known author who influenced pop-culture, so the story takes the stance that the names that Lovecraft uses are just that: names that he uses, but that they are *not* names these beings would recognize, they are just words Lovecraft invented. So Cthulhu is not \"Cthulhu\", he is instead \"Pontus\"; Shub-Niggurath is not \"Shub-Niggurath\", she is \"Nyx\", and so on.\n", - "> \n", - "> The story follows Percy Steele, son of Dorian Steele — a New York lawyer — and the Elder God that greeks knew as Ananke, the primordial goddes of inevitability, compulsion and fate — and also the being Lovecraft called \"Nyarlathotep\". The Great Prophecy clearly states that \"A half-blood child of the Eldest Gods/ shall reach sixteen against all odds\" and so, when he is taken from the Mórrígan (who is, of course, just another of Nyarlathotep's masks) for a cross-pantheon violation and is thus deposited in Camp Half-Blood, he is imeditaly claimed and all at once everyone realises that there was no reason to believe that the Great Prophecy refered to the sons of Kronos when it mentioned the \"Eldest Gods\".\n", + "> EDIT: Seriously, I'm still 'riding the high' .\n", "\n", - "> **u/Darkpiplumon** [+13] (an hour later)\n", - "> \n", - "> So, I've got to talk about [Sokaiseva](https://www.royalroad.com/fiction/35293/sokaiseva), which was recommended here some time ago.\n", - "> \n", - "> Warning, this is more a vent and a critique than a recommendation.\n", - "> \n", - "> The normal summary would be the following.\n", - "> \n", - "> This is the story of a fucked up kid child soldier in the modern world where some fucked up people get powers. This isn't known to the general population. \n", - "> \n", - "> There are like 10 different types of powers. Some people are very strong from the beginning and some aren't. While you can get better at using them, especially if you're in this first group, you can't really get stronger. Combat between powered people is brutal and fast, in less than 10 seconds we have a winner and a dead loser.\n", - "> The MC is the strongest known hydrokinetic at 12 years old.\n", - "> \n", - "> If you want the actual essence of the story, it's Worm told by a Soviet veteran. Let me explain.\n", - "> \n", - "> Every single character we meet is a sad, broken person who tumbles through life because it's all they know. We're told of extremely intelligent and charismatic leaders, who make the most obvious mistakes constantly. \n", - "> \n", - "> Young parahuman soldiers follow the ideals and orders of their charismatic and hyper intelligent leaders, mostly in order to delay Armageddon, until they realize that these ideals are worthless and they're just murderers and torturers. Then, they follow orders because it's all they know and they somehow still have loyalty to their leader.\n", - "> \n", - "> And all this work is only a doomed race against extinction, because sooner or later the big red button will be pressed and billions of people will die.\n", - "> \n", - "> The story has some great beats and interesting themes.\n", - "> For example: (medium-big spoiler) >!The MC gets blind. She manages to, well, manage with the use of her powers, but unlike how it's done with worm or worm related fanfic this remains a constant disability she has to deal with, and both her and the readers are reminded of this constantly.!<\n", - "> \n", - "> However, the pacing is atrocious. It has around 1100 pages right now, and it could be at least half that without changing the story all that much. \n", - "> \n", - "> The chapters are meandering, repetitive, and it does manage to put you in the skin of these grey sad soldiers who repeat their actions because it's all they know, longing for the moment they finally die/the chapter ends.\n", - "> And this is by reading it all at once, if I read new chapters as they came out, once a month, I would have dropped it much earlier.\n", - "> \n", - "> For me, this story is in that spot where it has some very good stuff going on, but it's completely overshadowed by its flaws.\n", - "> \n", - "> If none of these sound like flaws to you, give it a try and let me know. \n", - "> \n", - "> I myself am looking for books with better pacing, where we have lots of words but it doesn't feel like it. \n", - "> So please do recommend stories where the pacing is fast and/or the number of pages is long but you wouldn't care if it was even longer. Right now I only have in mind Mother of learning as an example.\n", - "\n", - ">> **u/cupicrackdelavidah** [+8] (11 hours later)\n", + ">> **u/Sophronius** [+2] *The Need to Become Stronger* (51 minutes later)\n", ">> \n", - ">> Thresholder on RR (by Alexander Wales) is relatively well known in here. It's about a guy who travels worlds, gets thrusted into conflict, and obtains powers along the way. The arcs seem to be independent from one another, with side characters constantly changing. Although that is something I personally think will change in the near future, with the way the story is developing.\n", - ">> \n", - ">> Another one is String (by Sivam) on RR. This one is extremely underrated in my opinion. It's about superheroes, with a world similar to Worm. The superpower of the main character is to upgrade technology, which is a completely OP power. It's a struggle sometimes, MC makes some stupid decisions fairly often. But the his superpower makes it worth the read. The side characters and their motivations are done really well, and the antagonists are cool too. It's one of my favorites currently.\n", + ">> Hah, that's good to hear. I love writing action scenes, they've always been my favourite. Was a bit worried I had put too much dialogue into this one, but I guess not. :)\n", "\n", - ">> **u/LaziIy** [+5] (3 hours later)\n", - ">> \n", - ">> Just a heads up, your spoiler isn't a spoiler. The markdown for spoiler is >! TEXT !<, just without any spaces between the text and the ! such as: >!TEXT!<\n", + "> **u/entropizer** [+3] (4 hours later)\n", + "> \n", + "> I don't think it flowed very well having Scar learn how to manipulate the spirits right before manipulating the spirits. Revelations should appear chapters ahead of time.\n", "\n", - ">>> **u/Darkpiplumon** [+2] (3 hours later)\n", + ">> **u/Sophronius** [+2] *The Need to Become Stronger* (23 hours later)\n", + ">> \n", + ">> Hmm, I kind of agree that it broke up the action a bit too much, but I don't think this is the kind of revelation I could have put in a previous chapter. Set-up like realizing that the fruits are the key and their meditation in the cave, definitely. But the last-minute epiphany that results in a power-up that allows the hero to beat the villain is an [old and proven trope](http://tvtropes.org/pmwiki/pmwiki.php/Main/HeroicSecondWind). \n", + ">> \n", + ">> Of course, if you feel that the set-up and the lore provided so far doesn't justify Scar's realization, [that's something else entirely](http://tvtropes.org/pmwiki/pmwiki.php/Main/Asspull).\n", + ">> \n", + ">> I don't think it was unjustified though: Everything Scar realizes follows logically from what had been revealed before that point, or at least it seems that way to me.\n", + "\n", + ">>> **u/entropizer** [+3] (a day later)\n", ">>> \n", - ">>> Thanks!\n", + ">>> From \"'Yes', Scar shouted\" to \"why should *you*?\" I felt you were very rapidly covering ideas that had not been adequately presented in previous chapters. I think it's valid to have one final puzzle piece slot into place at the moment of a story's climax, but this felt more like several puzzle pieces, and we weren't even given a particularly definitive explanation of how they fit together, which is why Scar expressed uncertainty in that very section.\n", + ">>> \n", + ">>> Keeping the revelation shorter helped prevent it from breaking up the action, but also meant you couldn't do as much to justify it. I would have preferred more solid justification even if it meant you needed to break up the dramatic tension somehow. But best of all would have been to provide more groundwork for that justification in earlier chapters.\n", "\n", - ">>>> **u/steelong** [+2] (20 hours later)\n", + "> **u/Sophronius** [+4] *The Need to Become Stronger* (23 hours later)\n", + "> \n", + "> I can't help myself: I have to show off all the set-up and foreshadowing that was necessary to justify the awesome magic stuff that happened in this chapter:\n", + "> \n", + "> Chapter 2)\n", + "> \n", + "> * \"the extraordinary boon of divine status shall be offered as a reward for the king’s most loyal and able servants.”\n", + "> * \"They say you could call down lighting from the sky and bathe your enemies in fire. Surely no mere monkey could possess a stronger connection to the spirit world than you.\"\n", + "> * “And then we pounce on him, take his bakora staff, and use it to reawaken your divine powers!\"\n", + "> \n", + "> Chapter 3)\n", + "> \n", + "> * The walls of the tree were filled with incomprehensible scribbling and mural paintings picked out in shades of red.\n", + "> * When she opened her eyes again, she saw to her amazement that the shapes were moving. \"You can see quite clearly already, for one so recently introduced to Hakuna Matata.”\n", + "> * “Oh man, I love this place,” said Timon. “Just the smell of these paints… hmm-hmm. This is great. Life is great. Everything’s great.”\n", + "> * \"Trust me: Inhale vapours, meditate on infinite. There is no more I can do – enlightenment must come from within.”\n", + "> \n", + "> Chapter 4) \n", + "> \n", + "> * “You and I have a spot in the afterlife now – fantastic! But we still don’t know if it really works that way\" Slowly, Banzai's eyes opened – but when they did they stared out at nothing.\n", + "> \n", + "> Chapter 5) \n", + "> \n", + "> * \"The Mufasa I knew would never have said that to you, not in a million years!\"\n", + "> \n", + "> Chapter 6)\n", + "> \n", + "> * He dipped his staff into the bag, causing a red mist to pour forth. There was no spell that could force out the truth, but there were certainly powders and charms that affected the mind.\n", + "> \n", + "> Chapter 7)\n", + "> \n", + "> * \"That powder… Rafiki used the same colour paint to mark Simba during his presentation! It’s not the staff – it’s the fruits that are attached to it.”\n", + "> * \"Spiritual power comes from being enlightened. All you need is to find something worth focusing on.\" Zira hesitated for a second, and then beckoned to her cub.\n", + "> \n", + "> Chapter 8)\n", + "> \n", + "> * \"And if death ever does us part, then I swear I will drag your soul back screaming to where it rightly belongs.”\n", + "> * \"Spiritual power comes from gaining awareness of your own soul – and that means being honest with yourself, and with how you feel.”\n", + "> * \"I don’t have any spirits to call on, remember?” He closed his eyes in search of a connection, and this time he felt a second spiritual presence responding in kind.\n", + "> * \"Spirits might be stronger for their lack of flesh to weigh them down, but they’re ultimately still just animals with the will to keep themselves together after death.\"\n", + "> \n", + "> Come on, that has to be enough set-up to justify an impromptu ascension to god-hood, right??? And on top of that, there's also the fact that in the Lion Guard, the MC acquires power over the elements by focusing inwards and connecting with the Kings of the Past, and literally raises a dead king as a cloud of flaming smoke by awakening a volcano with his roar while someone else tossed a bokara staff in there. I realize most people don't watch the Lion Guard since it's not very good, but anyone who does would totally have seen this one coming :p\n", + "\n", + ">> **u/CouteauBleu** [+4] *We are the Empire.* (a day later)\n", + ">> \n", + ">> I... don't really see any strong pattern or connection here? I mean, sure, it makes sense that things could happen like that given previous events, but I'm not really having a \"Of course, it was there all along!!!\" moment, if that's what you mean.\n", + ">> \n", + ">> (also, the The Lion Guard is pretty awful)\n", + "\n", + ">>> **u/Sophronius** [+2] *The Need to Become Stronger* (a day later)\n", + ">>> \n", + ">>> Fair enough, it’s more a smattering of evidence and foreshadowing than any deductive proof, but I do think that Scar’s conclusions follow logically from the information as given:\n", + ">>> He starts out thinking that A) becoming king allows you to live on in the afterlife, and B) Magic comes from said spirit kings granting you power. However, he then tests A by scouting the afterlife with Banzai, which only leaves him braindamaged, and B) is put into question as both Simba and Nuka only see and say what they already believe. This convinces him that magic does not come directly/exclusively from the Kings of the Past. \n", + ">>> \n", + ">>> Then Zira tells him about her vision while looking at the red wall paintings, and Rafiki’s “Hakuna Matata” teachings which involve animals breathing in vapours and getting high from his red paints. Scar adds two and two together and concludes that magic comes from enlightenment, and that the fumes from his red fruits help you achieve this. \n", + ">>> \n", + ">>> So then during the fight, he tells Zira that spirits are just enlightened animals who persist through their magic after death, and it’s only through her words that he realizes that this means they can also draw on each other’s power despite still being alive. And of course, she realizes that she can negate her own death as well as her son’s by drawing on their connection which after all was the object of her meditation in the first place.\n", + ">>> \n", + ">>> The rest is just foreshadowing, with Zira talking about stealing Rafiki’s staff, using it to reawaken Scar’s power and bathing his enemies in fire, which is of course exactly what happened - though not the way she imagined.\n", + "\n", + ">>>> **u/CouteauBleu** [+2] *We are the Empire.* (a day later)\n", ">>>> \n", - ">>>> Your spoiler tag still does not work on desktop. You need to remove the space between the first exclamation point and the start of your text.\n", + ">>>> I'm seeing a lot of logical leaps here that only work because you're the author.\n", + ">>>> \n", + ">>>> > However, he then tests A by scouting the afterlife with Banzai, which only leaves him braindamaged\n", + ">>>> \n", + ">>>> Maybe the afterlife is only for lions, and hyena kings don't get anything? Maybe you actually need to be king for a week before the \"afterlife bonus\" kicks in? Or maybe it worked, and Banzai's spirit moved on to the afterlife, leaving her body an empty shell? It's not like Scar tried to freeze an actual Lion King as a control group. \n", + ">>>> \n", + ">>>> > both Simba and Nuka only see and say what they already believe\n", + ">>>> \n", + ">>>> Maybe Mufasa was about to tell Simba that Scar killed him, but Scar interrupted the ritual before it could happen? Or maybe Mufasa was restricted by Ancient Spirit Laws in what he could say, and Simba misinterpreted his message? (which wouldn't be that hard, given that, again, he was interrupted)\n", + ">>>> \n", + ">>>> > Scar adds two and two together and concludes that magic comes from enlightenment, and that the fumes from his red fruits help you achieve this.\n", + ">>>> \n", + ">>>> Maybe enlightenment in unnecessary, and the magic red fumes do everything? \n", + ">>>> \n", + ">>>> > So then during the fight, he tells Zira that spirits are just enlightened animals who persist through their magic after death, and it’s only through her words that he realizes that this means they can also draw on each other’s power despite still being alive\n", + ">>>> \n", + ">>>> I'm not seeing the connection.\n", "\n", - ">>>>> **u/Darkpiplumon** [+1] (20 hours later)\n", + ">>>>> **u/Sophronius** [+1] *The Need to Become Stronger* (a day later)\n", ">>>>> \n", - ">>>>> Damn, this spoiler stuff is pretty annoying. Give me a sec.\n", - ">>>>> Edit: It works for me? Might be an old reddit issue?\n", - "\n", - ">>>>>> **u/EdLincoln6** [+2] (a day later)\n", - ">>>>>> \n", - ">>>>>> I'm on desktop and it works for me.\n", - ">>>>>> \n", - ">>>>>> And I really don't think the issue is the \"space\". Everyone parrots that, but I've run into problems where I knew there was no space. I think it's a bit of tech support advice that applied several Reddit upgrades ago.\n", - "\n", - ">>>>>>> **u/Tirear** [+3] (a day later)\n", - ">>>>>>> \n", - ">>>>>>> Spaces still consistently cause problems on old reddit. When other features have wired issues on old reddit (*glares at numbered lists*) I don't see a problem telling people to (temporarily) switch to another version or deal with the improperly displayed output, but spoiler tags are unique in that once you see the tags aren't working it is too late to switch.\n", - "\n", - ">>>>>>>> **u/EdLincoln6** [+2] (2 days later)\n", - ">>>>>>>> \n", - ">>>>>>>> Perhaps...but I KNOW that a lot of the times people say they can't see the spoilers, there were no spaces.  I've checked that a thousand times.\n", - "\n", - ">>>>>> **u/grekhaus** [+1] (22 hours later)\n", - ">>>>>> \n", - ">>>>>> Still not working. The space is still there.\n", - "\n", - "> **u/RandomIsocahedron** [+14] (12 hours later)\n", - "> \n", - "> I'm looking for stories with state-building or national leadership as a focus, with protagonists who either lead polities or hold powerful / influential positions. Some examples would be *The Moon is a Harsh Mistress* and some of the *Foundation* books. *A Practical Guide to Evil* seems to be in the same vein, although I didn't finish it because it started feeling like a slog a little over halfway through. Any recommendations?\n", - "\n", - ">> **u/GlueBoy** [+8] *anti-skub* (2 days later)\n", - ">> \n", - ">> Leadership: \n", - ">> \n", - ">> * Shogun - I read it as a teenager and it's still among my favourite novels ever. the deuteragonist Yoshii Toronaga is a fictional expy of Tokugawa Ieyasu, the third and final great unifier of japan, and one of the best iterations of the \"Magnificent Bastard\" trope imo. \n", - ">> * The Folding Knife - Another \"magnificent bastard\", this time the protagonist\n", - ">> * Goblin Emperor \n", - ">> * The Traitor Baru Cormorant\n", - ">> \n", - ">> Nation-building + leadership: \n", - ">> \n", - ">> * Ash & Sand' trilogy by Richard Nell - One of the two protagonists storyline is basically purely nation building. My favourite indie book/trilogy by far, it's a shame how little attention its received.\n", - ">> * Tree of Aeons - The writing can be rough, but the kingdom building aspect is well developed. \n", - ">> * Ar’Kendrithyst \n", - ">> * The Mars trilogy \n", - ">> * Destiny's Crucible by Olan Thorensen - also uplift\n", - "\n", - ">>> **u/RandomIsocahedron** [+2] (2 days later)\n", - ">>> \n", - ">>> Great list, thank you so much!\n", - "\n", - ">> **u/DomesticatedDungeon** [+4] (3 days later)\n", - ">> \n", - ">> `•` [*House of Cards*](https://tvtropes.org/pmwiki/pmwiki.php/Series/HouseOfCardsUS) (1st season)\n", - ">> \n", - ">> `•` seconding [*Tree of Aeons*](https://www.royalroad.com/fiction/20568/tree-of-aeons-an-isekai-story/)\n", - ">> \n", - ">> `~` [*Release That Witch*](https://tvtropes.org/pmwiki/pmwiki.php/Literature/ReleaseThatWitch)\n", - ">> \n", - ">> `?` [*Purple Days*](https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/PurpleDays)\n", - ">> \n", - ">> `?` [*The Masquerade Series*](https://www.goodreads.com/series/199001-the-masquerade)\n", - ">> \n", - ">> `?` [*The Merchant Princes*](https://www.goodreads.com/series/40515-the-merchant-princes) Series\n", - ">> \n", - ">> ---\n", - ">> \n", - ">> `•` [*Young Woman's Political Record, A*](https://www.fanfiction.net/s/13002064) \n", - ">> \n", - ">> `?` [*Young Girl's Game of Thrones, A*](https://forums.spacebattles.com/threads/a-young-girls-game-of-thrones.1095557/#post-92896145)\n", - ">> \n", - ">> `~` [*The Safehold Series*](https://www.goodreads.com/series/58713-safehold)\n", - ">> \n", - ">> `~` [*The Empire Trilogy*](https://www.goodreads.com/series/44298-the-empire-trilogy)\n", - ">> \n", - ">> -\n", - ">> \n", - ">> see also: [this earlier request](https://old.reddit.com/r/rational/comments/1ekoil8/d_monday_request_and_recommendation_thread/lgmfa5w/) \n", - ">> \n", - ">> [*\\(annot.\\)*](https://old.reddit.com/user/DomesticatedDungeon/comments/1g67akb/annotation_for_recommendations/)\n", - "\n", - ">>> **u/thomas_m_k** [+3] (4 days later)\n", - ">>> \n", - ">>> Seconding *A Young Woman's Political Record*. It probably helps to have a passing familiarity with Yōjo Senki. The investment of watching a bit of Yōjo Senki will surely pay off because there's so much Yōjo Senki fiction.\n", - "\n", - ">>>> **u/chiruochiba** [+2] (4 days later)\n", - ">>>> \n", - ">>>> For a more efficient time investment, I recommend reading the manga over watching the anime. https://mangadex.org/title/d773c8be-8e82-4ff1-a4e9-46171395319b/youjo-senki\n", - "\n", - ">>> **u/Brilliant-North-1693** [+2] (4 days later)\n", - ">>> \n", - ">>> Can you expand a bit on why you liked Safehold? I looked into it and it seems like a man out of time uplift scenario, with majority forces opposing the protagonist. \n", - ">>> \n", - ">>> These kinds of stories are ones I enjoy, but is there anything in particular that made you single it out, beyond its sci-fi progressive themes?\n", - "\n", - ">>>> **u/DomesticatedDungeon** [+1] (4 days later)\n", - ">>>> \n", - ">>>> It isn't rational, and the later books drop in quality.\n", - ">>>> \n", - ">>>> However, it may be a match for this request depending on how \"state-building or national leadership as a focus, with protagonists who either lead polities or hold powerful / influential positions\" is interpreted. It features themes of social engineering that rarely become such a prominent focus in a story (less so a whole series).\n", - ">>>> \n", - ">>>> In comparison to other uplift stories, I'd say this one has a stronger focus on the main characters themselves holding (and keeping) power, rather than the process / progression of uplift itself (no matter who'll end up working towards it or benefitting from it more).\n", - ">>>> \n", - ">>>> Another thing is that I have rarely met stories that would be featuring themes described in the OP-comment *and* have plot quality at least as good as what *Safehold* manages to offer. So I think it's better to mention it with a warning for the caveats (it's nearly at the bottom of [the rec list\\)](https://old.reddit.com/user/DomesticatedDungeon/comments/1g67akb/annotation_for_recommendations/) than not at all.\n", - "\n", - ">>>>> **u/electricsashimi** [+2] (5 days later)\n", + ">>>>> Those are not so much logical leaps as they are liberal application of Occam’s razor. Sure, it’s possible that you become immortal a week after becoming a king, but it’s a needlessly complicated way to explain Scar’s observations. Scar only ever credited the original “Lion Kings become immortal becomes they’re lion kings” story because it was the official explanation: When it turned out that Rafiki was full of crap, there no longer was any reason to privilege that particular hypothesis.\n", ">>>>> \n", - ">>>>> I agree with Safehold. Enjoyed the first couple books, but later the author gets REALLY preachy about Christianity. There is the overall theme about religion and being anti-technology puritans but the author inserts Christianity way too much for a scifi story\n", - "\n", - ">> **u/fassina2** [+4] *Progressive Overload* (a day later)\n", - ">> \n", - ">> This may or may not be helpful but Frostpunk 2 is kind of what you're looking for. There's a senate and to pass laws you need a certain number of votes. Each faction has a certain number of delegates based on the percentage of the population they represent. \n", - ">> \n", - ">> On high difficulties people are less likely to vote for what you want so you have to make deals to pass the laws you desire. You make deals by making promises, they vote for this law and in exchange you'll pass some other law they want, or you build something they want, or you pay them, there are several more options for deals and it's random what they'll want.\n", - ">> \n", - ">> It gets interesting in bad times, when nobody is particularly happy, there are protests on the streets. Then you get into this strings of promises and commitments to try to salvage the situation and save the country from itself. \n", - ">> \n", - ">> To end the protest on your hothouses you need to pass some law, but it's a very divisive law that only that specific faction wants. But you have no choice otherwise people will starve without food. So you cave in, but to pass this law you need to make a deal with another faction and they want to pick the law for the next vote, \"that's fine\" you think \"they'll probably not pass something that bad\". Next thing you know you're on the brink of civil war..\n", - "\n", - ">>> **u/RandomIsocahedron** [+1] (a day later)\n", - ">>> \n", - ">>> Interesting... I did actually enjoy Frostpunk 1 for this reason! I saw the mixed reviews for 2 and decided to wait a bit, but with a recommendation from this sub I might go for it sooner.\n", - "\n", - ">>>> **u/aaannnnnnooo** [+3] (3 days later)\n", - ">>>> \n", - ">>>> If you're into video game recommendations, I'd highly recommend Suzerain. It's an incredible game that's remarkable poignant even with being 95% just text. You play as the president of a Turkey-equivalent in the 1960s and have to direct the country out of a recession with hostile countries on your borders and world-wide tension regarding capitalism/communism.\n", - "\n", - "> **u/GaBeRockKing** [+12] *Horizon Breach: http://archiveofourown.org/works/6785857* (2 days later)\n", - "> \n", - "> **Recommendations**\n", - "> \n", - "> [When I Win the World Ends - Bavitz](https://archiveofourown.org/works/57689716/chapters/146811931)\n", - "> \n", - "> Pokemon, completed.\n", - "> \n", - "> > Once a year, the world's best trainers compete for the title of World Champion. Toril, the favorite, has dedicated her life to battling. Aracely, the underdog, has not. In fact, she barely knows the rules. She didn't even build her own team. She's a mockery of the sacred bond between trainers and Pokémon, one Toril swears to eliminate.\n", - "> \n", - "> > But Aracely makes plays that shouldn't be possible. She reads opponents as though reading their minds, predicts exactly what they'll do. And now, she's made another prediction, one far more unsettling: \"When I win, the world ends.\"\n", - "> \n", - "> I admit-- I already recommended this literally 2 weeks ago, but I'm recommending it again now that it's complete. Fucking PHENOMENAL work. Ambitious, intelligent characters-- and a surprisingly literary style of writing for a pokemon fanfic.\n", - "> \n", - "> [Long Term Nuclear Waste Warning Messages](https://archiveofourown.org/series/2532754)\n", - "> \n", - "> Rewrite of the first few maximum ride novels by someone who isn't doing coke with their ghostwriters. Everything I loved about the Maximum Ride books minus everything I hated about James Patterson.\n", - "\n", - "> **u/GaBeRockKing** [+7] *Horizon Breach: http://archiveofourown.org/works/6785857* (2 days later)\n", - "> \n", - "> **REQUEST:**\n", - "> \n", - "> There's a lot of small fandoms that fly completely under my radar. So I'm going to make a general request for truly excellent fanfiction from *small* fandoms. Let's put a hard cap on 500 fics or fewer. (Which is fairly mid-sized, but whatever.)\n", - "> \n", - "> Things I enjoy:\n", - "> \n", - "> Action, Adventure, Self-insert, Sci-fi, Fantasy, aggressively over-examined worldbuilding, intelligent antagonists\n", - "> \n", - "> Things I actively avoid:\n", - "> \n", - "> Hurt/Comfort, Smut, Romance-focused works, Fluff, Coffee shop AUs (and variants), 2nd person, blatant wish fulfilment\n", - "> \n", - "> Please only supply fics that are complete or have updated in the last three months. I'll happily read oneshots, but preferably only if they don't require knowledge of the source material. (Assuming I don't know the source material in the first place.)\n", - "> \n", - "> Feel free to peruse my [goodreads](https://www.goodreads.com/review/list/82954187?shelf=read), [Myanimelist](https://myanimelist.net/profile/GaBeRockKing), and [imdb](https://www.imdb.com/user/ur113395328/ratings/) profiles if you want to make a tailored recommendation... or just snoop on what I've been watching and reading.\n", - "\n", - ">> **u/TheAnt88** [+5] (2 days later)\n", - ">> \n", - ">> Interesting request. These are the ones with smallest fandoms I could find\n", - ">> \n", - ">> Daria in Morrowind - A fusion fic of Daria and Morrowind that describes her life and the characters if they lived in Morrowind with daily drama, boredom, and episodes changed to better fit things. Short fic as it ends with a big canon event from Morrowind and only uses a few episodes of Daria for inspiration. \n", - ">> \n", - ">> You Know You Have a Permanent Piece of My Medium-Sized American Heart - A Martian media fanfiction oneshot that describes how the internet and media react to Mark Watney's logs being released overtime and how the world treats them like a reality show/survival story. \n", - ">> \n", - ">> DoofQuest- a Disney Villains Victorious CK2-Style Quest - Details the campy and funny villain of Phineas and Ferb in a world where all the Disney villains won and he actually did manage to take over the local area and his efforts to find meaning and evolve in a world that is much more dangerous, chaotic, and wild that his old show. \n", - ">> \n", - ">> Pound the Table- An Xmen SI mixed with Law and Order on spacebattles that uniquely focuses on a mutant lawyer and the various legal issues that pop up in the marvel universe and how her presence is starting to slowly change things. \n", - ">> \n", - ">> Springbreaker - a new quest on sufficient velocity that takes place in Forever Winter, a game that hasn't been released yet where the players control a AI that tries to fix the nightmarish scavenger world eternally in a horrific war.\n", - "\n", - ">> **u/TheJungleDragon** [+3] (2 days later)\n", - ">> \n", - ">> I'm gonna make a self-rec here, since it fits your outlined request, but with the caveat that it is a self-rec. Only other caveat is that it is formatted as a chatfic, though more along the lines of Microsoft teams than a whatsapp group chat.\n", - ">> \n", - ">> [Drawn Quarterly (one shot, 10k words)](https://archiveofourown.org/works/57379984) is a Lancer RPG fic documenting the design and creation of the Caliban mech, a chassis meant to solve a financial issue with ship-to-ship combat by efficiently murdering hostile crews with minimal resource expenditure. It specifically follows the Development Direction team as they agonise over various annoyances like super-governmental watchdogs, shit-stirrers, and the nature of working for a corporate state. Hope you enjoy it :)\n", - "\n", - ">> **u/Searching_42** [+3] (3 days later)\n", - ">> \n", - ">> Seconding this request!\n", - ">> It's always great to find fics from fandoms I've never interacted with before, and sometimes there's fics that are compelling enough that they end up creating tropes in their fandom.\n", - ">> \n", - ">> So in line with that I'm gonna recommend \n", - ">> The Devil and the Deep Blue Sea\n", - ">> https://archiveofourown.org/works/10222295/chapters/22682429\n", - ">> \n", - ">> The Alex Rider fandom is a bit bigger (3k) but like half that is recursive from this fic (and the other half is porn)\n", - ">> \n", - ">> Also not a tiny fandom but The Stone Gryphon from Narnia is quite good\n", - ">> https://archiveofourown.org/series/15017\n", - ">> \n", - ">> It's got a lot of the religious undertones from Narnia which might put ppl off & does assume some knowledge of the source material but I really enjoyed the second fic in the series which is about Susan as a British spy in America in WW2. Early spycraft is kinda wild\n", - "\n", - ">>> **u/GaBeRockKing** [+2] *Horizon Breach: http://archiveofourown.org/works/6785857* (3 days later)\n", - ">>> \n", - ">>> These fics look like absolute monsters lmao. I'm either going to drop them within the first chapter or lose the next two weeks of my life.\n", - ">>> \n", - ">>> I decided to go through every 3 star+ book on my goodreads to check out their fandoms. I've gotten through all the <5000 word oneshots in the <100 work fandoms and about half of the <5000 the oneshots from the <100 work fandoms. I have a LOT of fandoms and a LOT of fics left to go through, so eventually I'll post a full reckoning. Here's the cream of the crop so far:\n", - ">>> \n", - ">>> [Interesting Facts About the London Zoo](https://archiveofourown.org/works/346142) -- **Leviathan.**\n", - ">>> \n", - ">>> > Dr. Barlow wonders when science became the thing she does when her time permits.\n", - ">>> \n", - ">>> [Fireteam](https://archiveofourown.org/works/33858397) -- **Worth the Candle**\n", - ">>> \n", - ">>> > A Uniquities fireteam infiltrates a fortified cultist compound. Things do not go as planned.\n", - ">>> \n", - ">>> [A Mundane Thing](https://archiveofourown.org/works/38187844) -- **Takopi's Original Sin**\n", - ">>> \n", - ">>> Takopi's Original Sin is a manga about an alien from a children's cartoon planet coming to earth to find friends... and discovering a little girl who's being brutally bullied. The source material is FANTASTIC. Read that then read this.\n", - ">>> \n", - ">>> [Halting Problem](https://archiveofourown.org/works/55592827) -- **There is No Antimemetics Division**\n", - ">>> \n", - ">>> Captures the feel of possibly one of the best SCP foundation stories of all time.\n", - ">>> \n", - ">>> [Wall to Wall Carpeting](https://archiveofourown.org/works/36514573) -- **Feed**\n", - ">>> \n", - ">>> A short, introspective piece written in [Feed's](https://www.goodreads.com/book/show/169756.Feed) peculiar style\n", - ">>> \n", - ">>> [Campanology for Beginners](https://archiveofourown.org/works/55826038) -- **Anathem**\n", - ">>> \n", - ">>> I never thought I'd see someone exactly manage to match the tone of the original work, but this hits it on the dot.\n", - "\n", - ">> **u/thomas_m_k** [+3] (4 days later)\n", - ">> \n", - ">> Fandom: Sekirei, fic: https://www.fanfiction.net/s/8078340/1/Postnuptial-Disagreements (complete)\n", - ">> \n", - ">> Skirts the \"no romance\" rule though. But the romance, if you can even call it that, plays a minor role.\n", - "\n", - ">> **u/DomesticatedDungeon** [+2] (3 days later)\n", - ">> \n", - ">> `•` [Let the Right One In] [*Let Me In 2*;](https://www.fanfiction.net/s/7423061/1/Let-Me-In-2)\n", - ">> \n", - ">> `•` [Terminator] [*Branches on the Tree of Time*;](https://www.fanfiction.net/s/9658524/1/Branches-on-the-Tree-of-Time)\n", - ">> \n", - ">> `•` [The Metamorphosis of Prime Intellect] [*Casino Odyssey in Cyberspace, A*;](https://web.archive.org/web/20190429235942/https://localroger.com/casodycs.html) \n", - ">> \n", - ">> `•` [SCP] [*There Is No Antimemetics Division*;](https://tvtropes.org/pmwiki/pmwiki.php/Literature/ThereIsNoAntimemeticsDivision)\n", - ">> \n", - ">> `◦•` [SCP] [*Confinement*.](https://www.youtube.com/watch?v=r544qDgP5qE)\n", - ">> \n", - ">> `•` [The Thing] [*The Things*;](https://clarkesworldmagazine.com/watts_01_10/)\n", - ">> \n", - ">> `~𐄂` [Dungeon Keeper / Sailor Moon] ] [*Dungeon Keeper Ami*](https://forums.sufficientvelocity.com/threads/dungeon-keeper-ami-sailor-moon-dungeon-keeper-story-only-thread.30066/threadmarks) — mismatch on the \"complete or have updated in the last three months\" part;\n", - ">> \n", - ">> `~𐄂` [Truman's Show] [*Truman's Map*](https://www.fanfiction.net/s/13556120/1/Truman-s-Map) — mismatch on the \"complete or have updated in the last three months\" part.\n", - ">> \n", - ">> ---\n", - ">> \n", - ">> `•` [Prototype] [*Variant Strain*](https://forums.spacebattles.com/threads/variant-strain-spiderman-marvel-prototype.236144/);\n", - ">> \n", - ">> `◦~` [Prototype] [*Biomass Effect*](https://www.fanfiction.net/s/10602465/1/) — unfinished, but with excellent prose and ~350K WL.\n", - ">> \n", - ">> `~𐄂` [Good Omens] *[Demonology and the Tri-Phasic Model of Trauma: An Integrative Approach](https://archiveofourown.org/works/20177950/chapters/47807593)* — likely a mismatch on the \"Hurt/Comfort, romance-focused works, Fluff, Coffee shop AUs\";\n", - ">> \n", - ">> `•` [Ben10] [*Rewind*](https://www.fanfiction.net/s/4307536/1/). \n", - ">> \n", - ">> [*\\(annot.\\)*](https://old.reddit.com/user/DomesticatedDungeon/comments/1g67akb/annotation_for_recommendations/)\n", - "\n", - ">>> **u/BavarianBarbarian_** [+1] (4 days later)\n", - ">>> \n", - ">>> > Demonology and the Tri-Phasic Model of Trauma: An Integrative Approach \n", - ">>> \n", - ">>> I second this one on general principles, but the fandom has some 70k fics lol\n", - "\n", - "> **u/college-apps-sad** [+6] (4 days later)\n", - "> \n", - "> Posting this a bit late in the week so idk if anyone will see this, but does anyone have recommendations for a story where the main character has to suddenly take on a position of leadership that they aren't prepared for due to everyone above them dying off or being incompetent in some way? \n", - "> \n", - "> Some examples that I like are [\"The Lost Fleet\" ](https://www.goodreads.com/series/41101-the-lost-fleet)and [\"16 ways to defend a walled city\"](https://www.goodreads.com/book/show/37946419-sixteen-ways-to-defend-a-walled-city). The first is military scifi - the protagonist was presumed dead fighting off the first attack in a 100 year long war. His government, desperate for any bright spots in the war that they had been blindsided by, makes him a mythical hero. On the way to a covert attack on the enemy's capital, his escape pod is discovered, with him being still alive in stasis. Unfortunately, it was a trap and all of the senior commanders are killed or taken captive while surrendering, and he is the seniormost captain left because he was promoted a century ago. It's not exactly rational, but I really like the way that he has to take command and use actual tactics, and the impact of 100 years of war on the two civilizations. \n", - "> \n", - "> The latter is about a colonel in the engineering brigades of an imperial army, who is the highest ranking soldier left in the capital which has suddenly come under siege. KJ Parker's books in general are kind of like hard fantasy in that they aren't full of handwavey magic or anything, though again, not necessarily rational. He's intelligent and willing to try lots of things to save his city. \n", - "> \n", - "> I love this trope, but don't think I've explicitly seen it in rational fiction before.\n", - "\n", - ">> **u/megazver** [+3] (5 days later)\n", - ">> \n", - ">> Might want to re-ask this the day after tomorrow, when the fresh Monday thread is posted.\n", - ">> \n", - ">> But try https://tvtropes.org/pmwiki/pmwiki.php/Main/YouAreInCommandNow\n", - "\n", - ">> **u/ahasuerus_isfdb** [+1] (4 days later)\n", - ">> \n", - ">> Robinson Crusoe-derived stories are often like that. For example, in Robert Heinlein's *Tunnel in the Sky* a group of teenagers is stranded on a remote planet and some of them have to develop into leaders in a hurry. It's even more pronounced in S. M. Stirling's [Island in the Sea of Time](https://en.wikipedia.org/wiki/Island_in_the_Sea_of_Time) trilogy and Eric Flint's [1632](https://en.wikipedia.org/wiki/1632_series) series since the number of displaced people is much greater.\n", - "\n", - "> **u/ObsceneGoat** [+11] (20 hours later)\n", - "> \n", - "> I've been sifting through QQ trying to find gems for a while now, like the degenerate gambler I am. Most of the site is really fucking badly written pornography, but here are two that I heartily recommend: \n", - "> \n", - "> * [Duellist ](https://forum.questionablequesting.com/threads/duellist-worm.10756/)- Greg Veder gets a combat simulation power. The one thing this fic does incredibly well is characters using powers in clever and interesting ways; every action scene is a puzzle that gets solved in a satisfying way. I highly recommend it for that reason alone; in my opinion it matches the original Worm in this aspect, maybe even bests it at times (due to circumstances allowed by the conceit), which is saying something. The story does include smut, and I think the start is especially weak for this, but the story just keeps getting better as it gathers steam; I especially enjoy the characterizations for Greg, Taylor, and Sophia. One caveat I'll mention is that if you're very sensitive to written depictions of violence, or get squeamish about the moral qualms of fictional characters, then this is best avoided.\n", - "> * Why it fits this subreddit: exploiting superpowers, puzzle-like combat, just downright good.\n", - "> * [Polyhistor Academy ](https://forum.questionablequesting.com/threads/polyhistor-academy-original-setting-survival-quest.614/)- How do you raise your class rank at this world-class magical school? Well, you kill everyone with better grades than you, of course! Polyhistor Academy is an anything-goes institution isolated from the outside world. This might strike you as an absurd premise, but it's executed incredibly well. The story reads like a high-stakes thriller at times, and the setting clearly has a lot of work put into it (I would call it rational), with a unique and iconic magic system. The downside (there's always one) is that this is a Quest that's been running for about a decade now, with readers directing the main character's actions. This definitely adds some strange directions to the story, but it did not overmuch bother me. Notably, the author is not afraid to dish out real consequences to the protagonist, which keeps the tension high throughout.\n", - "> * Why it fits this subreddit: well-crafted setting, rational \"[simulationist fiction](https://alexanderwales.com/narrativism-vs-simulationism/)\" vibe, just downright good.\n", - "\n", - ">> **u/CatInAPot** [+4] (2 days later)\n", - ">> \n", - ">> Checked out Polyhistor based on this recommendation. I will say that the combo of dice rolls and user direction causes some annoying inconsistencies in characterization for our MC, and the formatting of the story is straight up weird (it's like a summary, and then details in the next post). \n", - ">> \n", - ">> The story is quite engaging and I had a good time regardless, so thanks for the recc!\n", - "\n", - ">> **u/Naitra** [+5] (4 days later)\n", - ">> \n", - ">> I've finished reading Duellist, and was not expecting it to be that good. If you have any other diamonds in the rough in QQ, please let me know as I don't mind smut as long as the story itself is good.\n", - "\n", - ">>> **u/ahasuerus_isfdb** [+3] (4 days later)\n", - ">>> \n", - ">>> My rated lists of [Worm fan fics](https://docs.google.com/document/d/1o6_Gk2FBBCKPlpXfCBCbUk7SCsCCOKiECLShDA_Pz_0/edit?tab=t.0) include a [NSFW sub-list](https://docs.google.com/document/d/1GQX6FWcWs21Oc0FDslBfQ9NugyTQjL-fPmVQwVr8mJQ/edit?tab=t.0#heading=h.gzmg479efmr7), which may be of interest. (In case you use Firefox, note that it may take it a long time to load large Google docs.)\n", - ">>> \n", - ">>> Note, however, that many of them are not like *Duellist*. Some, like *The Neuroqueen of Brockton Bay*, deal with mind control and are basically horror. Some, like *The XV Days of Christmas*, are NSFW-adjacent semi-crack. Some, like *How Many Swords Could a Swordchuck Chuck?* and *Shaper's Plot Bunny Farm*, are snippets of varying quality.\n", - ">>> \n", - ">>> *God Game 100* may be the closest you'll be able to get to *Duellist* if you limit yourself to the top section of the sub-list.\n", - "\n", - ">>>> **u/Yeongua** [+1] (11 days later)\n", - ">>>> \n", - ">>>> >God Game 100\n", - ">>>> \n", - ">>>> An excellent taste sir! Usually it's me who's recommending this fic here and there. Do you happen to know any similar fics? Not picky with fandoms.\n", - ">>>> By similar I mean:\n", - ">>>> Rational behaving MC, interesting plot, perfect combination of actions scenes, slice of life part, and extremely well written realistic smut.\n", - ">>>> \n", - ">>>> I happened to read some works with nice combo of well written nsfw parts and kinda slice of life, but their focus was mostly romance and characters relations, with little to none plot progression\n", - "\n", - ">>>>> **u/ahasuerus_isfdb** [+2] (12 days later)\n", + ">>>>> “Lions are special” is still simple enough to be worth considering, but that doesn’t explain why a mandrill is the world’s strongest magic user. Also, as Scar remarks to Zira in the cave, the common thread running through Magic monkeys/magic captains/magic kings is the red fruits and the unusual levels of wisdom involved with each, not the fact that some of them are lions (most lions seem exactly the same as other animals in this regard). \n", ">>>>> \n", - ">>>>> I am afraid I haven't seen much traditionally published fiction with all of the elements that you are looking for. Once the US Supreme Court made it much harder to prosecute pornography in 1967-1968, there were attempts to publish \"high brow SF porn\", but they were not commercially successful and quickly collapsed. [Essex House](https://www.isfdb.org/cgi-bin/pubs_not_in_series.cgi?18317) is the best known example and Philip Jose Farmer's contributions, especially *A Feast Unknown* and *The Image of the Beast*, were the best of what they published.\n", + ">>>>> > Maybe enlightenment in unnecessary, and the magic red fumes do everything?\n", ">>>>> \n", - ">>>>> *A Feast Unknown* (1969) was probably the closest to what this subreddit is interested in, specifically \"genre tropes [Tarzan and Doc Savage] are re-imagined in a more realistic manner.\" However, the sex scenes were as gory as the rest of the novel, so it may not be quite what you are after. (The [sequels](https://www.isfdb.org/cgi-bin/pe.cgi?12099) were published by normal publishers and were more traditional action/adventure stories with no explicit sex scenes.)\n", + ">>>>> The main argument from Scar here is that all known magic users and spirit kings were considered to be very wise, which seems like a bit much of a coincidence otherwise. Also, he already knew that Rafiki was teaching his acolytes enlightenment using those fruits, and he has a low prior for “these particular fruits just happen to be magical”.\n", ">>>>> \n", - ">>>>> On the fanfiction side, you are probably familiar with ShaperV's [Time Braid](https://www.fanfiction.net/s/5193644/1/Time-Braid). In case you are not, it's a \"time looping Sakura\" Naruto fanfic with decent munchkinry, but the sex scenes are not particularly realistic. Some mind control aspects can also be off-putting depending on the reader's preferences.\n", + ">>>>> > I'm not seeing the connection.\n", ">>>>> \n", - ">>>>> As far as original Web-published fiction goes, I found Andrews S. Ball's popular [Dream Drive Compendium](https://www.reddit.com/r/noveltranslations/comments/3nomvp/ennsfw_dream_drive_volume_1_chapters_110/) to be a mixed bag. Some sections were well-written and exciting, others were a chore to get through.\n", + ">>>>> This follows from his generalization of “magic comes from enlightenment” and “Enlightened spirits persist after death”. Scar distinguishes between two hypotheses:\n", ">>>>> \n", - ">>>>> [Reversion](https://web.archive.org/web/20160306024558/https://www.asstr.org/~kellis/varkel/rev/chaps.htm) was moderately popular about 20 years ago and included some decent munckinry, but the erotic side was overblown and not particularly interesting. It almost felt like the authors were compelled to add it in order to expand their audience. The writing was also fairly amateurish.\n", + ">>>>> 1)\tEnlightenment gives you a connection to spirits. ALSO being a spirit gives you power. \n", + ">>>>> 2)\tEnlightenment gives you power, immortality, and allows you to connect with others. \n", + ">>>>> \n", + ">>>>> He concludes that 2 is more likely as it posits only one mechanism for magic, rather than two, while explaining the same data. (Also, Zira saw a vision of her living son with no known spirits involved)\n", + ">>>>> \n", + ">>>>> Like I said, it’s not a logical proof, but IMO it presents a series of very reasonable educated guesses.\n", "\n", - ">>>>>> **u/Yeongua** [+2] (12 days later)\n", - ">>>>>> \n", - ">>>>>> Ty. Comment added to saved, will check\n", - "\n", - ">>> **u/ObsceneGoat** [+1] (7 days later)\n", - ">>> \n", - ">>> Dropped some more [here](https://www.reddit.com/r/rational/comments/1g8qdip/comment/lt4nqds/)!\n", - "\n", - ">> **u/AssadTheImpaler** [+5] (2 days later)\n", - ">> \n", - ">> I can second Duellist. Some of the best work on that site and that's not an exaggeration.\n", - ">> \n", - ">> [Challenger](https://forum.questionablequesting.com/threads/challenger-mha-worm.26341/) (an NSFW MHA fic) was directly inspired by Duellist, so if you like one you'll probably like the other. Same warnings also apply.\n", - ">> \n", - ">> Another (SFW) QQ fic I recommend is [Understanding Does Not Presage Peace](https://forum.questionablequesting.com/threads/understanding-does-not-presage-peace-naruto-insert.20479/). It's a Rational-adjacent Naruto fic about an intelligent non-shinobi protagonist whose intelligence is heavily leveraged. It has a few annoying non-canon changes, and some melodrama I don't really care for, but overall an enjoyable read.\n", - ">> \n", - ">> The last (NSFW) QQ fic I tentatively recommend is [Abusing Tropes In A Generic Anime World For Maximum Bullshit](https://forum.questionablequesting.com/threads/abusing-tropes-in-a-generic-anime-world-for-maximum-bullshit.24179/). I really didn't like the writing, especially at the beginning but it was absolutely worth it for the way the plot developed. Exactly what it says on the tin, a story about a guy using and abusing anime tropes, in a world built on them, to survive and thrive.\n", - "\n", - ">> **u/thomas_m_k** [+1] (5 days later)\n", - ">> \n", - ">> >One caveat I'll mention is that if you're very sensitive to written depictions of violence, or get squeamish about the moral qualms of fictional characters, then this is best avoided. \n", - ">> \n", - ">> I wish the author had made it clearer in the story that the simulated people are *less* than real people. But especially that long conversation with Tattletale just gave the impression that the simulation is detailed to such an extent that the simulated people are basically real people.\n", - "\n", - "> **u/Complete_Spring_5994** [+4] (14 hours later)\n", + "> **u/None** [+2] (a day later)\n", "> \n", - "> Archetype book one has been completed. \n", - "> \n", - "> It follows a young man trying to rationally and morally explore steadily gaining more superhuman power. 146k words. \n", - "> \n", - "> https://www.royalroad.com/fiction/84799/archetype-slowburn-superhuman-progression\n", + "> Been away for a while. Just read Chapter 1. Hoo, this is good. Thanks for writing!\n", "\n", - ">> **u/None** [+2] (14 hours later)\n", + ">> **u/Sophronius** [+1] *The Need to Become Stronger* (a day later)\n", ">> \n", - ">> [deleted]\n", - "\n", - ">>> **u/Complete_Spring_5994** [+1] (14 hours later)\n", - ">>> \n", - ">>> Changed thanks\n", - "\n", - "> **u/OGSyedIsEverywhere** [+12] (10 minutes later)\n", - "> \n", - "> Last week I went through my bookmarks for anything that I've tagged as ASOIAF over the years and assembled a list of what ones I'd recommend. I figure a few people missed it when I first posted it so [here's the link for anybody who didn't catch it the first time.](https://old.reddit.com/r/rational/comments/1fzmwt0/recommend_quality_literary_rational_fiction/lr3rl39/)\n", - "\n", - ">> **u/GlueBoy** [+8] *anti-skub* (5 hours later)\n", - ">> \n", - ">> > I've also never encountered anything in the fandom that **challenges patriarchal views about LGBT+ or female sexual agency and sexuality in-universe** for any purpose besides smut \n", - ">> \n", - ">> I'm curious what you mean by this. Several of the novels you mentioned do seem to \"challenge\" those views. Winter of Widows in particular does it, and in ways that are, if not realistic, at least measured and narratively engaging. There's even a non-binary cook! If WoW doesn't count in your eyes, I can't imagine how such a story would look like.\n", - "\n", - ">>> **u/OGSyedIsEverywhere** [-2] (5 hours later)\n", - ">>> \n", - ">>> You misunderstand. I'm talking about having the characters within a given story challenge each other over their respective views about sexual and gender identity freedoms. If you want me to name fics that (justifiably) challenge the audience I'll never run out of fics to name.\n", - "\n", - ">>>> **u/GlueBoy** [+16] *anti-skub* (7 hours later)\n", - ">>>> \n", - ">>>> I still don't understand what you mean, especially if such an assertively feminist story like Winter of Widows doesn't make the cut with regards to female sexual agency at the very least. \n", - ">>>> \n", - ">>>> How do you imagine challenging someone over their views on sexual/gender identity would look like in a medieval-esque setting such as asoiaf?\n", - "\n", - ">>>>> **u/lillarty** [+7] (2 days later)\n", - ">>>>> \n", - ">>>>> My impression was that they meant stories where the protagonist walks up to the king and calls him a misogynist, or something. WoW is an assertively feminist *story*, the other poster seems to want an explicitly feminist *character*, in-universe. \n", - ">>>>> \n", - ">>>>> I'm not sure what the life expectancy would be for such a character in Wersteros, though.\n", - "\n", - ">>>>>> **u/sephirothrr** [+13] (2 days later)\n", - ">>>>>> \n", - ">>>>>> Your point is actually incidentally well-made in a story I would recommend - https://www.royalroad.com/fiction/48948/a-soldier-adrift-captain-westeros - in the sense that in order to be such a character you have to essentially be a superhuman that can back up your moral superiority with martial superiority.\n", - "\n", - ">>>>>> **u/ReproachfulWombat** [+5] (2 days later)\n", - ">>>>>> \n", - ">>>>>> The Dornish seem more Classical Greek than Medieval European in their attitudes towards sex and gender-roles from what I've read (admittedly a lot of it was fanfic). I can't imagine it would be too hard to write a character coming from that sort of background that would have cultural clashes with more 'traditional' Westerosi nobles on the subjects of female agency, inheritance and sexuality. I can't think of any fics where that's been *done*, but I also don't think it would automatically be as ludicrous a premise as a character walking up to the king and calling him out on his identity politics.\n", - "\n", - ">>>>>>> **u/lillarty** [+3] (5 days later)\n", - ">>>>>>> \n", - ">>>>>>> I believe they were more modeled after Persia than Greece, but other than that I agree completely.\n", - "\n", - ">> **u/xshadowfax** [+4] (4 days later)\n", - ">> \n", - ">> Just read and enjoyed *Wearing Robert's Crown* even dead as it is.\n", - ">> I've tried and enjoyed many fics from this list in the past, so in the spirit of reciprocation, I'll also recc a fic I felt was missing from it:\n", - ">> \n", - ">> [Canucks](https://archiveofourown.org/works/38990139/chapters/97525608):\n", - ">> \n", - ">> A small group of Canadian soldiers are transported to Westeros beyond the Wall, without knowledge of the books/series along with a snow crawler and loads of weapons. It had believable levels of verisimilitude, the lack of metaknowledge removed a lot of the usual SI obnoxiousness and the author is skilled/confident enough at character writing to pull off a memorable OC main cast. There's of course that culture/tech clash of \"modern firearms meets the barbarians/zombies\" but the fic is pretty grounded on this topic without the kind of looking down you would expect from such a premise. Active and updating.\n", - "\n", - ">> **u/DrTerminater** [+2] (3 hours later)\n", - ">> \n", - ">> Of those, which would you recommend the most strongly?\n", - "\n", - ">>> **u/OGSyedIsEverywhere** [+7] (3 hours later)\n", - ">>> \n", - ">>> The Winter of Widows.\n", - "\n", - ">>>> **u/hoja_nasredin** [+1] *Dai-Gurren Brigade* (5 hours later)\n", - ">>>> \n", - ">>>> thanks\n", - "\n", - ">> **u/AssadTheImpaler** [+1] (2 days later)\n", - ">> \n", - ">> I'm really enjoying The Winter of Widows, thanks for the rec.\n", - ">> \n", - ">> Have you read Daughter of the Empire (by Janny Wurts and Raymond Feist)? It's been a while since I've read it but TWoW immediately reminded me of it. If you haven't read it already I recommend it.\n", - "\n", - ">>> **u/OGSyedIsEverywhere** [+1] (5 days later)\n", - ">>> \n", - ">>> I've subsequently started reading it, thanks. I think I've spotted a couple phrases in DotE that I've previously seen in TWoW, so it looks like there could be some *direct* inspiration.\n", - "\n", - "> **u/LaziIy** [+4] (3 hours later)\n", - "> \n", - "> Got around to reading the [outsider's resolve](https://forums.spacebattles.com/threads/naruto-the-outsiders-resolve.1050442/reader/) , it was a pretty fun read. I like how much world building is put into Konoha, and the slow burn of power scaling adds to its charm.\n", - "\n", - ">> **u/sephirothrr** [+4] (2 days later)\n", - ">> \n", - ">> I've brought it up before, possibly even on this subreddit. I enjoyed this until it turned into a >!run-of-the-mill story about organized crime!<, which I found to be incredibly uncompelling, especially given the particulars of the setting, and retroactively soured the whole story for me.\n", - "\n", - ">>> **u/Flashbunny** [+4] (2 days later)\n", - ">>> \n", - ">>> Yeah, I dropped it after a while of that too. It wasn't very interesting to read, and IIRC the somewhat modern-feeling police procedural stuff felt kind of out of place in-universe.\n", - "\n", - ">>> **u/Darkpiplumon** [+1] (2 days later)\n", - ">>> \n", - ">>> Just in case you want to continue the story someday, what you're talking about is just a small arc that doesn't last that long.\n", - "\n", - ">>>> **u/sephirothrr** [+3] (2 days later)\n", - ">>>> \n", - ">>>> Yeah the bigger problem was that it destroyed my trust in the author being able to write a good story in that setting, since it showed he doesn't actually understand it.\n", - "\n", - ">>> **u/LaziIy** [+1] (2 days later)\n", - ">>> \n", - ">>> If you ever feel like picking it back up someday, it is relatively a minor arc that exists to lay a foundation for some of the relations and motivations that the MC will have in the future. >!Having an arc about organized crime when the MC joins the Police's organized crime department was par for the course!< It does actually deviate off the script towards the end to lay the narrative for some of the changes the MC has caused to cannon.\n", - "\n", - ">>>> **u/sephirothrr** [+8] (2 days later)\n", - ">>>> \n", - ">>>> Right, and if it weren't set in the Naruto universe, it'd be perfectly cromulent - >!however, the problem I have is that you can't just take it for a given that organized crime would exist when interpersonal power dynamics are so fundamentally different than they are in the real world!< - and this contradiction shows to me that the setting is just set dressing, and none of the implications of it are actually explored.\n", - "\n", - ">>>>> **u/LaziIy** [+2] (3 days later)\n", - ">>>>> \n", - ">>>>> Well there are differences from the canon world ,or perceived reality from the author's pov, that we are already introduced to before it gets to the crime arc such as that the Leaf village is much larger and far less of a totalitarian state than we see from the scope of the show. \n", - ">>>>> \n", - ">>>>> >!I guess I didn't really pay much attention to it since the organized crime arc really doesn't feature any actual organizations doing these acts bar hints towards one. It was usually just small scale problems that were solvable by a team of genin so in the power scaling of the fiction, really just an issue about finding them rather than being complex issues to solve. Since it quickly becomes more of a narcotics centered arc, the initial phase didn't garner much long lasting thought from me as to the point of the organized crime department's existence. The only actual organization that debuts in this arc gets revealed to have rather explainable ninja ties so I felt that it didn't wander too far from the setting.!< \n", - ">>>>> \n", - ">>>>> If the notion of the hidden village having an underbelly is irreconcilable, then yeah the arc and the subsequent fiction probably wouldn't be your cup of tea.\n", - "\n", - ">>>>>> **u/sephirothrr** [+6] (3 days later)\n", - ">>>>>> \n", - ">>>>>> > If the notion of the hidden village having an underbelly is irreconcilable, then yeah the arc and the subsequent fiction probably wouldn't be your cup of tea.\n", - ">>>>>> \n", - ">>>>>> I mean it's not even that - we have Danzo's shenanigans, and those are canon. The execution here just left a lot to be desired.\n", - "\n", - ">>>>>>> **u/LaziIy** [+2] (3 days later)\n", - ">>>>>>> \n", - ">>>>>>> Execution in what sense? That there was a police force with departments in Konoha? It seemed like a pretty standard fanfiction arc , but maybe I missed something the author butchered.\n", - ">>>>>>> >!Also yeah the only organized real crime that the MC gets to investigate as a genin detective ends up being a danzo shenanigan, the rest is just a continuation of the ring drama from previous arcs. !<\n", - "\n", - ">> **u/krugsbn** [+5] (2 days later)\n", - ">> \n", - ">> The flow of the story was alright but little inconsistencies added up to my ire.\n", - ">> \n", - ">> I couldn't continue reading it after MC got a minor lightning release jutsu, then I saw in the comments how there was a crime arc coming. The story convinced me it wouldn't respect the original worldbuilding at all. \n", - ">> \n", - ">> I want to see jutsus flying, martial arts fighting good old Naruto stories, but they keep making it about bullsh-t dramas and 7-year olds' ninja training. Sad.\n", - "\n", - ">>> **u/LaziIy** [+1] (3 days later)\n", - ">>> \n", - ">>> Sounds like you dropped it pretty early, there is a crime arc but it ties into the flow of the story pretty well and definitely keeps the martial arts fighting aspect of it alive. \n", - ">>> \n", - ">>> As for jutsu's flying and hardcore fighting all the time, I can say that it does happen after the crime arc for a solid two arcs but ultimately the story is about the MC's progression so it ties together plot points that don't have to do with fighting as well.\n", - "\n", - ">> **u/DrTerminater** [+3] (4 hours later)\n", - ">> \n", - ">> Very good fic, there should be more like it. Realistic and steady progression.\n", + ">> Cheers! Let me know how you like the rest of the chapters.\n", "\n", "---\n", "\n", diff --git a/nbs/mjc_004_process.ipynb b/nbs/mjc_004_process.ipynb index 4c00f754..ac0c7117 100644 --- a/nbs/mjc_004_process.ipynb +++ b/nbs/mjc_004_process.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -11,12 +11,14 @@ "from pathlib import Path\n", "\n", "import pandas as pd\n", - "from tqdm.auto import tqdm" + "from tqdm.auto import tqdm\n", + "tqdm.pandas()\n", + "from loguru import logger" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -41,13 +43,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f7709599023b4987882d10b664fafb55", + "model_id": "880ba146143a468c936a4afafdfb967d", "version_major": 2, "version_minor": 0 }, @@ -61,7 +63,7 @@ { "data": { "text/plain": [ - "13739" + "29313" ] }, "execution_count": 3, @@ -105,6 +107,7 @@ " \"fanfiction.net\",\n", " \"this video\",\n", " \"here.\",\n", + " 'tubmlr',\n", " \"threads\",\n", " \"code\",\n", " \"link index\",\n", @@ -130,14 +133,18 @@ " \"wiki\",\n", " \"pateron\",\n", " \"source\",\n", + " 'chapter',\n", + " 'amazon',\n", + " 'kindle',\n", + " 'epub',\n", "]\n", "\n", - "\n", - "def remember_md_link_titles(markdown_text):\n", + "def get_md_link_titles(markdown_text):\n", " # other rules\n", " # 1. should have space\n", " # not subreddit?\n", " # should have capital\n", + " titles_md2 = {}\n", "\n", " # Regular expression to match markdown links\n", " markdown_link_pattern = re.compile(r\"\\[([^\\]]+)\\]\\((http[s]?://[^\\)]+)\\)\")\n", @@ -145,18 +152,22 @@ " # Find all markdown links\n", " for match in markdown_link_pattern.findall(markdown_text):\n", " title, url = match\n", + " titles_md2[url] = []\n", " # tidy title of * / _ and remove leading/trailing whitespace\n", " title = title.strip().strip(\"*\").strip(\"_\")\n", "\n", " if \"r/\" in title:\n", " continue\n", "\n", - " if \" \" not in title:\n", - " continue\n", + " # I mean ideally it has spaces but Worm doesn't hpmor doesn't\n", + " # if \" \" not in title:\n", + " # continue\n", "\n", + " # should have caps\n", " if title.lower() == title:\n", " continue\n", "\n", + " # should have at least 4 characters e,g, Worm, HPMOR\n", " if len(title) < 4:\n", " continue\n", "\n", @@ -171,8 +182,17 @@ " if any([x in title.lower() for x in title_should_not_have]):\n", " continue\n", "\n", - " titles_md[url].append(title)\n", + " titles_md2[url].append(title)\n", "\n", + " return titles_md2\n", + "\n", + "\n", + "def remember_md_link_titles(markdown_text):\n", + "\n", + " md_title_dict = get_md_link_titles(markdown_text)\n", + " for k, v in md_title_dict.items():\n", + " if 'http' not in v:\n", + " titles_md[k].extend(v)\n", "\n", "for f in tqdm(fs):\n", " s = json.loads(f.open().read())\n", @@ -186,21 +206,2769 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Time Braid 94\n", + "defaultdict(list,\n", + " {'https://readcomiconline.li/Comic/Squarriors-2014': [],\n", + " 'https://readcomiconline.li/Comic/Alt-Life': ['Alt-life'],\n", + " 'https://readcomiconline.li/Comic/Pride-of-Baghdad': ['Pride of Baghdad'],\n", + " 'https://readcomiconline.li/Comic/%C3%86ther-Empire': ['Aether and empire'],\n", + " 'https://readcomiconline.li/Comic/Guinea-Pigs': ['Guinea pigs'],\n", + " 'https://readcomiconline.li/Comic/920London/TPB?id=172150': ['920London'],\n", + " 'https://www.lackadaisycats.com/': ['Lackadaisy Cats',\n", + " 'Lackadaisy Cats'],\n", + " 'https://mangadex.org/title/ad42a9f3-8e8e-405e-88be-2ca2bbe4847b/child': ['Child'],\n", + " 'https://mangadex.org/title/4f665ec1-a93a-46e4-936d-54bfde53063b/child-4koma': ['Child 4koma'],\n", + " 'https://readcomiconline.li/Comic/Crashing': ['Crashing'],\n", + " 'https://readcomiconline.li/Comic/Eight-Billion-Genies': ['Eight Billion Genies'],\n", + " 'https://readcomiconline.li/Comic/Public-Domain': ['Public Domain'],\n", + " 'https://readcomiconline.li/Comic/Animal-Castle': ['Animal Castle'],\n", + " 'https://readcomiconline.li/Comic/Radiant-Black': ['Radiant Black'],\n", + " 'https://readcomiconline.li/Comic/Birdking': ['Birdking'],\n", + " 'https://readcomiconline.li/Comic/Squarriors-2016': ['Squarriors'],\n", + " 'https://mangadex.org/title/088803b7-961b-4100-b728-8a331d5a5f77/andy': ['Andy'],\n", + " 'https://mangadex.org/title/13ab94bd-d49d-45ab-9356-78ef91eecac0/boku-no-kanojo-wa-ai-sakuga': [],\n", + " 'https://mangadex.org/chapter/52b5c842-5d58-41d1-8358-b5e86199e699/70': ['From Star Strings'],\n", + " 'https://mangakakalot.com/manga/be919195': ['Ultimate Rock-Paper-Scissors',\n", + " 'Ultimate Rock Paper Scissors'],\n", + " 'https://mangadex.org/title/d22ae7a1-cfae-475a-a8fc-589ef85eece4/bibliomania': ['BIBLIOMANIA'],\n", + " 'https://mangadex.org/title/c9926df8-a200-40ba-8c05-0f5b375180c9/sayonara-eri': ['Farewell, Eri'],\n", + " 'https://mangadex.org/title/f5b41dc4-16af-4c13-b22b-154836ec2b82/deus': ['Deus'],\n", + " 'https://mangadex.org/title/574b07c1-8094-47c5-b704-5d9b6b00bbc4/virgin-extinction-island': ['Virgin Extinction Island'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/GrowingTheBeard': [],\n", + " 'https://forum.questionablequesting.com/threads/the-unconquerable-transubstantiation-cyoa-multicross.16353/': ['The Unconquerable',\n", + " 'The Unconquerable'],\n", + " 'https://forums.sufficientvelocity.com/threads/should-the-sun-not-rise-urban-fantasy-updates-sundays.41717/': ['Should the Sun not Rise',\n", + " 'Should the Sun not Rise'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-2022-users-choice-awards.111201/#post-26432510': [],\n", + " 'https://forums.sufficientvelocity.com/threads/eldritch-voidtuber-viridian-s-laughter-hunting-blood-stream-blue-hills-apartment-complex-full-walkthrough.104806/': ['ELDRITCH VOIDTUBER VIRIDIAN S. LAUGHTER HUNTING BLOOD-STREAM | BLUE HILLS APARTMENT COMPLEX FULL WALKTHROUGH!'],\n", + " 'https://forums.sufficientvelocity.com/threads/tempus-fugit-special-fundraiser-timestream-boyfriend-face-reveal.107565/': ['TEMPUS FUGIT SPECIAL FUNDRAISER TIMESTREAM | BOYFRIEND FACE REVEAL'],\n", + " 'https://forums.sufficientvelocity.com/threads/marked-for-death-a-rational-naruto-quest.24481/': ['Marked for Death',\n", + " 'Marked For Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death (Naruto COYA)',\n", + " 'Marked for Death_ A Rational Naruto Quest Sufficient Velocity',\n", + " 'Marked For Death, A Rational Naruto Quest',\n", + " 'Marked for Death: A Rational Naruto Quest',\n", + " 'Marked for Death',\n", + " 'Marked For Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked-for-Death-relevant',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked For Death',\n", + " 'Marked for death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death: A Rational Naruto Quest',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death',\n", + " 'Marked For Death',\n", + " 'Marked for Death',\n", + " 'Marked for Death (A Naruto Quest)',\n", + " 'Marked for Death'],\n", + " 'https://www.undefined.net/1/0/?strip=1': ['1/0 by Tailsteak'],\n", + " 'https://forums.spacebattles.com/threads/a-song-of-chaos-mtg-young-justice-crossover.324537/': ['A Song of Chaos'],\n", + " 'https://forums.spacebattles.com/threads/taylor-on-the-edge-of-forever-worm-au-star-trek-au-x-over-alt-power-taylor.800090/': ['this Worm fanfic',\n", + " 'Taylor on the Edge of Forever'],\n", + " 'https://en.wikipedia.org/wiki/Peaky_Blinders_%28TV_series%29': ['Peaky Blinders'],\n", + " 'https://en.wikipedia.org/wiki/Castle_%28TV_series%29': [\"Castle's New York\"],\n", + " 'https://forums.sufficientvelocity.com/threads/scientia-weaponizes-the-future.82203/reader/': ['Scientia Weaponizes The Future'],\n", + " 'https://storiesonline.net/s/17944/micro-gates': ['Micro Gates',\n", + " 'Microgates.',\n", + " 'Micro Gates',\n", + " 'Micro Gates',\n", + " 'Micro Gates'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Mohs/OneBigLie': [],\n", + " 'https://www.goodreads.com/en/book/show/6713634-live-free-or-die': ['Live Free or Die'],\n", + " 'https://www.royalroad.com/fiction/15925/the-daily-grind': ['The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind',\n", + " 'The Daily Grind'],\n", + " 'https://en.wikipedia.org/wiki/Gate_%28novel_series%29': ['Gate'],\n", + " 'https://www.royalroad.com/fiction/26727/arkendrithyst': [\"Ar'Kendrythist\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrythist\",\n", + " 'Arkendrythist',\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " 'Arkendithrest',\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrythist\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrihyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrythist\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrythist\",\n", + " \"Ar'kendrithyst\",\n", + " \"Ar'Kendrythist\",\n", + " \"Ar'Kendrythist?\",\n", + " \"Ar'Kendrithyst\",\n", + " \"Ar'Kendrythist\"],\n", + " 'https://forums.sufficientvelocity.com/threads/hard-enough-pokemon-si.102511/#post-23596192': ['Hard Enough',\n", + " 'Hard Enough'],\n", + " 'https://www.law.cornell.edu/rules/fre/rule_403': ['Federal Rule of Evidence 403'],\n", + " 'https://www.nycourts.gov/judges/evidence/4-RELEVANCE/4-relevance.shtml': [],\n", + " 'https://www.mangaupdates.com/series/7v63sfr/sss-class-revival-hunter': ['SSS-Class Revival Hunter'],\n", + " 'https://mangadex.org/title/da7e2b0b-72a9-419c-b667-6a02c2c7c771/isekai-kuimetsu-no-same': ['Killer Shark in Another World'],\n", + " 'https://mangadex.org/title/39741b91-7782-452d-984b-70b3df834976/isekai-munchkin-hp-1-no-mama-de-saikyou-saisoku-danjon-kouryaku': [\"Otherworldly Munchkin: Let's Speedrun the Dungeon with Only 1 HP!\"],\n", + " 'https://mangadex.org/title/a4304d3b-191d-471f-8c78-353d403a35d0/sengoku-komachi-kuroutan-noukou-giga': ['Sengoku Komachi Kuroutan',\n", + " 'Sengoku Komachi Kuroutan',\n", + " 'Sengoku Komachi Kuroutan'],\n", + " 'https://www.webtoons.com/en/comedy/love-advice/list?title_no=1498&page=1': ['Love Advice from the Great Duke of Hell'],\n", + " 'https://mangadex.org/title/4fd4f8c0-fab8-4ee5-ab9e-5907720afed9/iken-senki-v-lundio': ['Verndio: Surreal Sword Saga'],\n", + " 'https://mangadex.org/title/52d4ad1e-d02c-4fef-81d6-1e758e699d31/hatarakanai-futari': ['The Jobless Siblings'],\n", + " 'https://reaperscans.com/novels/7766-the-demon-prince-goes-to-the-academy': ['The Demon Prince Goes To The Academy'],\n", + " 'https://www.webtoons.com/en/fantasy/the-ember-knight/list?title_no=2886&page=1': ['The Ember Knight'],\n", + " 'https://www.mangaupdates.com/series/k9cv670/father-unrivaled': ['Father, Unrivaled.'],\n", + " 'https://www.mangaupdates.com/series/kgbarka/master-villainess-the-invincible': ['Master Villainess the Invincible.'],\n", + " 'https://www.towercurator.com/void-domain/': ['Void Domain',\n", + " 'Void Domain'],\n", + " 'https://www.royalroad.com/fiction/32807/dark-skies': ['Dark Skies',\n", + " 'Dark Skies',\n", + " 'Dark Skies',\n", + " 'Dark Skies;',\n", + " 'Dark Skies',\n", + " 'Dark Skies',\n", + " 'Dark Skies',\n", + " 'Dark Skies',\n", + " 'Dark Skies'],\n", + " 'https://www.novelupdates.com/series/release-that-witch/': ['Release that Witch',\n", + " 'Release That Witch',\n", + " 'Release That Witch',\n", + " 'Release the Witch',\n", + " 'Release that Witch',\n", + " 'Release that Witch;',\n", + " 'Release That Witch (online)'],\n", + " 'https://www.royalroad.com/fiction/20568/tree-of-aeons-an-isekai-story/': ['Tree of Aeons',\n", + " 'Tree of Aeons',\n", + " 'Tree of Aeons'],\n", + " 'https://www.royalroad.com/fiction/25082/blue-core': ['Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core',\n", + " 'Blue Core'],\n", + " 'https://old.reddit.com/r/rational/comments/vjx6as/c_rt_frameshift_now_complete_at_chapter_150/': ['Frameshift'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/FanFic/Seed': ['Seed'],\n", + " 'https://worm.fandom.com/wiki/Butcher#Abilities_and_Powers': ['[Butcher'],\n", + " 'https://www.fanfiction.net/s/10629488/1/Blood-Crest': ['Blood Crest',\n", + " 'Blood Crest',\n", + " 'Blood Crest',\n", + " 'Blood Crest',\n", + " 'Blood Crest',\n", + " 'Blood Crest',\n", + " 'Blood Crest'],\n", + " 'https://www.fanfiction.net/s/8883971/1/Lord-Voldemort-and-the-Intricate-Plots': ['Intricate Plots, LV & the',\n", + " 'Lord Voldemort and the Intricate Plots'],\n", + " 'https://www.fanfiction.net/s/6517567/1/Harry-Potter-and-the-Temporal-Beacon': ['Temporal Beacon, HP & the',\n", + " 'Temporal Beacon, HP and the',\n", + " 'Harry Potter and the Temporal Beacon',\n", + " 'Harry Potter and the Temporal Beacon',\n", + " 'Harry Potter and the Temporal Beacon',\n", + " 'HP & the Temporal Beacon',\n", + " 'Temporal Beacon, HP & the',\n", + " 'Temporal Beacon, HP & the'],\n", + " 'https://www.fanfiction.net/s/9057950/1/Too-Young-to-Die': ['Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die;',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die',\n", + " 'Too Young to Die'],\n", + " 'https://www.fanfiction.net/s/9036071/1/With-Strength-of-Steel-Wings': ['With Strength of Steel Wings',\n", + " 'With Strength of Steel Wings',\n", + " 'With Strength of Steel Wings'],\n", + " 'https://archiveofourown.org/works/36413899/chapters/90790906': ['For Love of Magic',\n", + " 'For Love of Magic'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/FirebirdsSon': ['Firebird Trilogy, The'],\n", + " 'https://www.royalroad.com/fiction/46637/soulmonger': ['Soulmonger',\n", + " 'Soulmonger',\n", + " 'Soulmonger'],\n", + " 'https://www.royalroad.com/fiction/35669/apocalypse-generic-system': ['Apocalypse: Generic System',\n", + " 'Apocalypse: Generic System',\n", + " 'Apocalypse: Generic System',\n", + " \"'Apocalypse: Generic System'\"],\n", + " 'https://www.royalroad.com/fiction/25878/wake-of-the-ravager': ['Wake of the Ravager',\n", + " 'Wake of the Ravager',\n", + " 'Wake of the Ravager*,',\n", + " 'Wake of the Ravager',\n", + " 'Wake the Ravager',\n", + " 'Wake of the Ravager',\n", + " 'Wake of the Ravager',\n", + " 'Wake of the Ravager',\n", + " 'Wake of the Ravager',\n", + " 'Wake Of The Ravager',\n", + " 'Wake of the Ravager'],\n", + " 'https://www.royalroad.com/fiction/21178/the-outer-sphere': [],\n", + " 'https://www.royalroad.com/fiction/57011/industrial-strength-magic': ['Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial Strength Magic',\n", + " 'Industrial strength magic'],\n", + " 'https://www.royalroad.com/fiction/34710/the-essence-of-cultivation': ['The Essence of Cultivation',\n", + " 'The Essence of Cultivation',\n", + " 'Essence of Cultivation',\n", + " 'The Essence of Cultivation',\n", + " 'The Essence of Cultivation'],\n", + " 'https://www.royalroad.com/fiction/41521/a-budding-scientist-in-a-fantasy-world': ['A Budding Scientist in a Fantasy World',\n", + " 'A Budding Scientist in a Fantasy World',\n", + " 'A Budding Scientist in a Fantasy World',\n", + " 'A Budding Scientist in a Fantasy World',\n", + " 'A budding Scientiest...'],\n", + " 'https://www.royalroad.com/fiction/50082/haptic-imperative': ['Haptic Imperative'],\n", + " 'https://www.goodreads.com/book/show/42267952-into-the-labyrinth': ['Mage Errant'],\n", + " 'https://www.royalroad.com/fiction/42202/the-way-ahead': ['The Way Ahead',\n", + " 'The Way Ahead',\n", + " 'The Way Ahead',\n", + " 'The Way Ahead',\n", + " 'The Way Ahead'],\n", + " 'https://www.royalroad.com/fiction/34009/a-practical-guide-to-sorcery': ['A Practical Guide to Sorcery',\n", + " 'A Practical Guide to Scorcery',\n", + " 'A Practical Guide to Sorcery',\n", + " 'Royal Road',\n", + " 'A Practical Guide to Sorcery',\n", + " 'A Practical Guide to Sorcery',\n", + " 'A Practical Guide to Sorcery',\n", + " 'A Practical Guide to Sorcery'],\n", + " 'https://archive.org/details/Fantasy_Science_Fiction_v036n04_1969-04_PDF/page/n51/mode/2up': ['Not Long Before the End'],\n", + " 'https://forums.sufficientvelocity.com/threads/break-them-all-original-precross.12960/': ['Break them all',\n", + " 'Break Them All',\n", + " 'Break them All',\n", + " 'Break Them All',\n", + " 'Break them All',\n", + " 'Break them All',\n", + " 'Break Them All',\n", + " 'Break Them All',\n", + " 'Break Them All'],\n", + " 'https://forums.sufficientvelocity.com/threads/hermione-learns-a-thing.99926/': ['Hermione learns a thing',\n", + " 'Hermione Learns a Thing'],\n", + " 'https://allnovelfull.com/warlock-of-the-magus-world.html': ['Warlock of the Magus World'],\n", + " 'https://www.royalroad.com/fiction/39098/menschenjaeger': ['Menschenjaeger',\n", + " 'Menschenjaeger'],\n", + " 'https://forums.nrvnqsr.com/showthread.php/1870-Maybe-I-m-a-Lion-%28KnK-Prototype-Crossover%29': [\"Maybe I'm A Lion\",\n", + " \"Maybe I'm A Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\",\n", + " \"Maybe I'm a Lion\"],\n", + " 'https://forums.spacebattles.com/threads/compulsion-worm-prototype.821228/': ['Compulsion',\n", + " 'Compulsion'],\n", + " 'https://farmerbob1.wordpress.com/2013/11/13/chapter-1-a-meeting-of-the-minds/': ['Symbiote',\n", + " 'Symbiote',\n", + " 'Symbiote',\n", + " 'Symbiote',\n", + " 'Symbiote',\n", + " 'Symbiote',\n", + " 'Symbiote'],\n", + " 'https://www.royalroad.com/fiction/34670/featherlight': ['Featherlight'],\n", + " 'https://archiveofourown.org/works/44099640/chapters/110885952': ['Diplomatic Overture',\n", + " 'Diplomatic Overture,',\n", + " 'Diplomatic Overture',\n", + " 'Diplomatic Overture.'],\n", + " 'https://archiveofourown.org/tags/Avatar%20Cameron%20Movies/works': ['Avatar has 1000+ fics on AO3'],\n", + " 'https://forums.spacebattles.com/threads/jump-chan-didnt-start-the-fire-jumpchain-complete.542599/': [\"Jump-Chan Didn't Start The Fire\",\n", + " \"Jump-chan Didn't Start the Fire\"],\n", + " 'https://forums.spacebattles.com/threads/jumper-the-legendary-journeys-jumpchain-complete.497086/': ['Jumper: The Legendary Journeys',\n", + " 'Jumper: The Legendary Journeys'],\n", + " 'https://forums.spacebattles.com/threads/companion-chronicles-jumpchain-multicross-si-currently-visiting-intermission.787978/': ['Companion Chronicles',\n", + " 'Companion Chronicles',\n", + " 'Companion Chronicles'],\n", + " 'https://www.iheart.com/podcast/105-behind-the-bastards-29236323/': ['Behind the Bastards',\n", + " 'Behind the Bastards'],\n", + " 'https://soundcloud.com/user-798629330': [],\n", + " 'https://www.patreon.com/lionsledbydonkeys': [],\n", + " 'https://www.youtube.com/@welltheresyourproblempodca1465': [],\n", + " 'https://www.fanfiction.net/s/9969014/1/Seasons-of-change': [],\n", + " 'https://forums.sufficientvelocity.com/threads/hard-enough-pokemon-si.102511/': [],\n", + " 'https://www.reddit.com/r/rational/comments/107ggwy/comment/j3or0sj/?utm_source=share&utm_medium=web2x&context=3': [],\n", + " 'https://archiveofourown.org/works/19215478/chapters/45686068': ['Power of a Princess'],\n", + " 'https://archiveofourown.org/works/23484235/chapters/56307418': ['Bad Girls Do It Better'],\n", + " 'https://forums.sufficientvelocity.com/threads/conference-call-multicross.50109/#post-11279755': ['Conference Call'],\n", + " 'https://www.azaleaellis.com/pgts/prologue-myrddins-hermitage/': ['A Practical Guide to Sorcery'],\n", + " 'https://archiveofourown.org/works/43485478/chapters/109321909': [],\n", + " 'https://www.kickstarter.com/projects/wraithmarked/mother-of-learning-arc-2': [],\n", + " 'https://archiveofourown.org/works/43244523/chapters/108695088': [],\n", + " 'https://archiveofourown.org/series/2446036': [],\n", + " 'https://archiveofourown.org/works/32984290/chapters/81864850': [],\n", + " 'https://boxnovel.com/book/losing-money-to-be-a-tycoon-boxnovel/': ['Losing Money to Be a Tycoon'],\n", + " 'https://boxnovel.com/novel/gourmet-food-supplier/': ['Gourmet Food Supplier'],\n", + " 'https://www.royalroad.com/fiction/21107/isekai-speedrun': ['Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun',\n", + " 'Isekai Speedrun'],\n", + " 'https://www.fanfiction.net/s/7832146/1/Swapping-The-Cage': ['Swapping the Cage',\n", + " 'Swapping the Cage',\n", + " 'Swapping the Cage',\n", + " 'Swapping The Cage'],\n", + " 'https://forums.sufficientvelocity.com/threads/brocktons-celestial-forge-worm-jumpchain.70036/': [\"Brockton's Celestial Forge\",\n", + " \"Brockton's Celestial Forge\",\n", + " \"Brockton's Celestial Forge\",\n", + " 'Brockton’s Celestial Forge',\n", + " \"Brockton's Celestial Forge\",\n", + " \"Brockton's Celestial Forge\"],\n", + " 'https://forums.spacebattles.com/threads/respun-a-worm-peggy-sue-story.523987/': ['Respun'],\n", + " 'https://www.fanfiction.net/s/7305950/1/': ['The Empty Cage',\n", + " 'The Empty Cage'],\n", + " 'https://forums.spacebattles.com/threads/a-man-rants-at-a-camera-for-hours-on-end-nier-automata-somehow.909146/#post-73060511': ['A Man Rants at a Camera, for Hours On End \\\\(NieR: Automata, Somehow.\\\\)'],\n", + " 'https://forums.spacebattles.com/threads/till-i-change-your-mind-mass-effect-krogan-si.1036170/#post-86544855': ['Till I Change Your Mind \\\\(Mass Effect Krogan SI\\\\)'],\n", + " 'https://archiveofourown.org/series/205025': ['Island of Fire'],\n", + " 'https://www.royalroad.com/fiction/36735/the-perfect-run': ['The Perfect Run',\n", + " 'Perfect Run, The',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run',\n", + " 'The perfect run',\n", + " 'Perfect Run;',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run',\n", + " 'The Perfect Run'],\n", + " 'https://www.fanfiction.net/s/4068153/1/Harry-Potter-and-the-Wastelands-of-Time': ['HP and the Wastelands of Time',\n", + " 'Harry Potter and the Wastelands of Time',\n", + " 'Harry Potter and the Wastelands of Time',\n", + " 'Harry Potter and the Wastelands of Time'],\n", + " 'https://www.torforgeblog.com/2021/11/17/excerpt-worlds-of-exile-and-illusion-by-ursula-k-le-guin/': ['The Diary of Angyar (aka The Necklace)'],\n", + " 'https://www.goodreads.com/series/64473-the-broken-empire': ['The Broken Empire',\n", + " 'The Broken Empire'],\n", + " 'https://www.goodreads.com/series/109248-the-red-queen-s-war': [\"The Red Queen's War\",\n", + " \"The Red Queen's War\"],\n", + " 'https://www.shutupandsitdown.com/rpg-review-numenera/': ['Numenera'],\n", + " 'https://en.wikipedia.org/wiki/Torment:_Tides_of_Numenera': ['Torment: Tides of Numenera'],\n", + " 'https://posthuman.shop/collections/eclipse-phase-play-aids/products/eclipse-phase-afterthefall?variant=31773373399091': ['After the Fall'],\n", + " 'http://archiveofourown.org/works/1149623': ['Disillusion, by Hermione Granger',\n", + " 'Disillusion, by Hermione Granger'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/MagicFromTechnology': [],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/Intrepid': ['Intrepid'],\n", + " 'https://www.google.com/search?q=\"safehold\"+site%3Ahttps%3A%2F%2Fwww.reddit.com%2Fr%2Frational': ['Safehold'],\n", + " 'https://www.cavesofqud.com/': ['Caves of Qud'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-cyborg-in-the-wasteland-fallout-self-insert.106091/#post-24665396': ['A Cyborg in the Wasteland'],\n", + " 'https://forums.sufficientvelocity.com/threads/marked-for-death-a-rational-naruto-quest.24481/page-6901#post-16076158': ['Marked for Death'],\n", + " 'https://old.reddit.com/r/rational/comments/101em0c/d_monday_request_and_recommendation_thread/j2ofers/?context=3': [],\n", + " 'https://docs.google.com/spreadsheets/d/1Y4wkV364_0Bc3xPvgHYsFEQ6OCYyNBRudMPw4nFXn5U/edit': [],\n", + " 'https://forums.spacebattles.com/threads/mentioned-in-dispatches-snippets-and-one-shots.940265/#post-79829338': ['Wolf Point'],\n", + " 'https://www.abebooks.com/first-edition/Best-Military-Science-Fiction-20th-Century/10080657656/bd': ['“Best Military Sci-Fi of the 20th Century.”'],\n", + " 'https://forums.spacebattles.com/threads/the-world-waits-on-evil-hivers-eoa-ww-a-finished-story.274791/': ['The World Waits on Evil',\n", + " 'The World Waits on evil:',\n", + " 'The World Waits on Evil',\n", + " 'The World Waits on Evil',\n", + " 'The World Waits on Evil'],\n", + " 'https://www.reddit.com/r/ProgressionFantasy/comments/10djtu0/necromancer_or_undead_mc_series/': [],\n", + " 'https://www.goodreads.com/book/show/23359401-the-cycle-of-arawn': ['The Cycle of Arawn'],\n", + " 'https://www.royalroad.com/fiction/37251/dead-tired': ['Dead Tired',\n", + " 'Dead Tired'],\n", + " 'https://www.royalroad.com/profile/147338/fictions': [\"RavensDagger's fictions\",\n", + " 'RavensDagger',\n", + " 'RavensDagger'],\n", + " 'https://archiveofourown.org/works/25373284/chapters/61525111': [],\n", + " 'https://www.fanfiction.net/s/7262793/1/Ashes-of-the-Past': ['Ashes of the Past'],\n", + " 'https://ff.net': [],\n", + " 'https://forums.spacebattles.com/threads/ashes-of-the-past-pokemon-peggy-sue-thread-two.420755/': [],\n", + " 'https://archiveofourown.org/works/2080878': [],\n", + " 'https://archiveofourown.org/series/530818': [],\n", + " 'https://www.fanfiction.net/s/4826372/1/Harry-Mewter': [],\n", + " 'https://www.fanfiction.net/s/12026631/1/The-Very-Best': [],\n", + " 'https://archiveofourown.org/works/30508233/chapters/75237201': [\"Harry is a Dragon, And That's Ok\"],\n", + " 'https://www.royalroad.com/fiction/15935/there-is-no-epic-loot-here-only-puns': ['No Loot, Only Puns*,'],\n", + " 'https://thezombieknight.blogspot.com/2013/04/page-1.html': ['The Zombie Knight Saga',\n", + " 'Zombie Knight',\n", + " 'The Zombie Knight Saga'],\n", + " 'https://inmydaydreams.com/archives/5': ['The Legion of Nothing'],\n", + " 'https://www.royalroad.com/fiction/50836/to-the-far-shore': ['To The Far Shore',\n", + " 'To The Far Shore',\n", + " 'To the Far Shore',\n", + " 'To The Far Shore',\n", + " 'To the Far Shore',\n", + " 'To The Far Shore',\n", + " 'To The Far Shore',\n", + " 'To The Far Shore',\n", + " 'To the Far Shore',\n", + " 'To The Far Shore'],\n", + " 'https://alexanderwales.com/the-metropolitan-man-1/': ['The Metropolitan Man',\n", + " 'The Metropolitan Man'],\n", + " 'https://forums.spacebattles.com/threads/a-prison-of-glass-worm-cyoa.486424/reader/': ['A Prison of Glass'],\n", + " 'https://www.royalroad.com/fiction/57721/unfathomable-power-for-the-low-low-price-of-someone': ['Unfathomable Power for the Low, Low Price of Someone Else’s Soul',\n", + " \"Unfathomable Power for the Low Cost of Someone Else's Soul\"],\n", + " 'https://www.goodreads.com/book/show/302537.Fleet_of_Worlds': ['Fleet of worlds'],\n", + " 'https://www.goodreads.com/book/show/13538762-the-rapture-of-the-nerds': ['The rapture of the Nerds'],\n", + " 'https://www.goodreads.com/book/show/13055592-redshirts': ['Redshirts',\n", + " 'Redshirts',\n", + " 'Redshirts by John Scalzi',\n", + " 'Redshirts by John Scalzi'],\n", + " 'https://www.goodreads.com/book/show/20927280-schooled-in-magic': ['Schooled in Magic by Nuttal'],\n", + " 'https://www.goodreads.com/book/show/100344.Protector': ['Protector by Larry Niven'],\n", + " 'https://forum.questionablequesting.com/threads/industrious-naruto-au-si-inspired-inventor.20293/': ['Industrious'],\n", + " 'https://glowfic.com/posts/6340': [],\n", + " 'https://www.projectlawful.com/posts/4582': ['Project Lawful'],\n", + " 'https://glowfic.com/posts/6112': [],\n", + " 'https://glowfic.com/posts/5477': [],\n", + " 'https://glowfic.com/posts/4103': [],\n", + " 'https://archiveofourown.org/series/936480': ['A Song for Two Voices',\n", + " 'A Song for Two Voices',\n", + " 'A Song For Two Voices',\n", + " 'A Song For Two Voices',\n", + " 'A Song For Two Voices',\n", + " 'A Song For Two Voices',\n", + " 'A Song For Two Voices (Valdemar Series - Mercedes Lackey)',\n", + " 'A Song For Two Voices',\n", + " 'Song for Two Voices* series',\n", + " 'A song for Two Voices'],\n", + " 'https://glowfic.com/board_sections/551': [],\n", + " 'https://glowfic.com/posts/4728': [],\n", + " 'https://glowfic.com/posts/4519': [],\n", + " 'https://glowfic.com/posts/4560': [],\n", + " 'https://glowfic.com/posts/6263': [],\n", + " 'https://glowfic.com/posts/6304': [],\n", + " 'https://www.reddit.com/r/rational/comments/zpttzb/d_monday_request_and_recommendation_thread/j0yj22k/': [],\n", + " 'https://forums.sufficientvelocity.com/threads/the-pride-before-pokemon-xianxia.111674/post-26339246': ['Looks like just the initial idea was Cradle influenced'],\n", + " 'https://archiveofourown.org/works/32339365/chapters/80167612': ['An Impractical Guide to Godhood'],\n", + " 'https://m.fanfiction.net/s/4632605/1/Imperial-Fire': ['Imperial Fire'],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-guerrilla-war-youjo-senki-saga-of-tanya-the-evil-x-code-geass.971950/': ['A Young Girl’s Guerrilla War',\n", + " \"A Young Girl's Guerrilla War\"],\n", + " 'https://m.fanfiction.net/s/12120930/1/': ['Trinity of Tokiwadai'],\n", + " 'https://m.fanfiction.net/s/13052012/1/SAPR': ['SAPR'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-pride-before-pokemon-xianxia.111674/page-2#post-26360177': ['The Pride Before'],\n", + " 'https://archiveofourown.org/users/astolat/pseuds/astolat/works?fandom_id=242462': ['Game of Thrones fanfictions'],\n", + " 'https://en.m.wikipedia.org/wiki/Carrie_(novel\\\\': ['Carrie'],\n", + " 'https://www.lesswrong.com/posts/SA9hDewwsYgnuscae/projectlawful-com-eliezer-s-latest-story-past-1m-words?commentId=76dY9wjb59igCajcE': [],\n", + " 'https://forums.spacebattles.com/threads/trailblazer-worm-gundam-au-complete.680881/': ['Trailblazer',\n", + " 'Trailblazer',\n", + " 'Trailblazer',\n", + " 'Trailblazer',\n", + " 'Trailblazer',\n", + " 'Trailblaizer',\n", + " 'Trailblazer'],\n", + " 'https://worm.fandom.com/wiki/Chitter': ['Chitter'],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/ue3kip/worm_fan_fics_ratings_explanation/': ['number of rated lists of Worm fics',\n", + " 'much longer rated list of Worm fanfics',\n", + " 'variety of rated lists of Worm fanfics',\n", + " 'list of rated lists of Worm fanfics'],\n", + " 'https://archiveofourown.org/works/2776352/chapters/6226538': ['Weaver 9'],\n", + " 'https://archiveofourown.org/works/8813488/chapters/20207674': ['Cage'],\n", + " 'https://archiveofourown.org/works/17006943': ['The Case of the Disappeared Villain'],\n", + " 'https://archiveofourown.org/works/8603173': ['Tabloid'],\n", + " 'https://forums.spacebattles.com/threads/my-fake-girlfriend-is-a-vigilante-au-alt-power-tinker-taylor.849952/': ['My Fake Girlfriend is a Vigilante?'],\n", + " 'https://forums.sufficientvelocity.com/threads/outcry-dark-souls-2-worm-crossover.10153/': ['Outcry'],\n", + " 'https://forums.spacebattles.com/threads/taylor-has-a-strange-hobby-yandere-taylor.860167/': ['Taylor Has a Strange Hobby',\n", + " 'Taylor Has a Strange Hobby',\n", + " 'Taylor has a Strange Hobby'],\n", + " 'https://archiveofourown.org/works/17002908': ['Slick'],\n", + " 'https://archiveofourown.org/works/10825932': ['Éclair de Lune'],\n", + " 'https://archiveofourown.org/works/8739307': ['Loaf'],\n", + " 'https://forums.spacebattles.com/threads/a-pale-imitation-another-worm-projection-quest-from-one-sakata-gintoki-to-lysithea-von-ordelia.1022100/': ['A Pale Imitation (Worm Projection Quest)',\n", + " 'A Pale Imitation: Another Worm Projection Quest'],\n", + " 'https://forums.spacebattles.com/threads/trailblazer-worm-gundam-au-complete.680881': ['Trailblazer'],\n", + " 'https://wormstorysearch.com/?direction=desc&is_nsfw_eq=any&limit=20&page=1&searching=true&sort=stories.rating': ['most popular Worm fics'],\n", + " 'https://archiveofourown.org/series/160520': ['Cenotaph and the rest of the Memorials series'],\n", + " 'https://forums.spacebattles.com/threads/loaf-worm-post-epilogue-humor-complete.467128/': ['Loaf',\n", + " 'Loaf',\n", + " 'Loaf',\n", + " 'Loaf'],\n", + " 'https://forums.spacebattles.com/threads/burn-up-worm-complete.395526/': ['Burn Up',\n", + " 'Burn-up'],\n", + " 'https://forums.spacebattles.com/threads/special-edition-worm-xover.597691/': ['Special Edition',\n", + " 'Special Edition'],\n", + " 'https://www.merriam-webster.com/dictionary/monism': [],\n", + " 'https://web.archive.org/web/20190225181931/https://forums.sufficientvelocity.com/threads/warhammer-fantasy-divided-loyalties-an-advisors-quest.44838/page-6': [],\n", + " 'https://forums.sufficientvelocity.com/threads/warhammer-fantasy-divided-loyalties-an-advisors-quest.44838/': [\"Warhammer Fantasy: Divided Loyalties - an Advisor's Quest\",\n", + " 'Divided Loyalties',\n", + " 'Divided Loyalties',\n", + " 'Divided Loyalties',\n", + " 'Divided Loyalties',\n", + " 'Divided Loyalties',\n", + " \"Divided Loyalties: An Advisor's Quest\",\n", + " 'Divided Loyalties',\n", + " \"Warhammer Fantasy: Divided Loyalties - an Advisor's Quest\",\n", + " 'Divided Loyalties',\n", + " 'Divided Loyalties',\n", + " 'Divided loyalties',\n", + " 'Warhammer Fantasy: Divided Loyalties',\n", + " 'Divided Loyalties'],\n", + " 'https://www.reddit.com/r/warhammerfantasyrpg/comments/lrudv5/this_interactive_warhammer_fanficrpg_is_currently/': [],\n", + " 'https://www.goodreads.com/series/164322-fred-the-vampire-accountant': ['\"Fred the Vampire Accountant\"'],\n", + " 'https://en.wikipedia.org/wiki/The_Apothecary_Diaries': ['\"Apothecary Diaries\"'],\n", + " 'https://www.royalroad.com/fiction/47030/tori-transmigrated': ['Tori, Transmigrated',\n", + " 'Tori Transmigrated',\n", + " 'Tori Transmigrated',\n", + " 'Tori Transmigrated',\n", + " 'Tori Transmigrated'],\n", + " 'https://en.wikipedia.org/wiki/I_Can%27t_Understand_What_My_Husband_Is_Saying': ['\"I can\\'t understand what my husband is saying\"'],\n", + " 'https://en.wikipedia.org/wiki/Fly_Me_to_the_Moon_%28manga%29': ['\"Fly Me To The Moon\"'],\n", + " 'https://en.wikipedia.org/wiki/Miss_Kobayashi%27s_Dragon_Maid': [\"Miss Kobayashi's Dragon Maid\"],\n", + " 'https://www.amazon.co.uk/dp/1905038437': ['\"A Brush With Magic\"'],\n", + " 'https://www.amazon.co.uk/dp/B0971S5F74/': [],\n", + " 'https://www.toothycat.net/tradewinds/': [],\n", + " 'https://archiveofourown.org/works/18738010/chapters/44446768': ['Marriage and Monsters - An Eschatological Romance',\n", + " 'Marriage and Monsters: An Eschatological Romance',\n", + " 'Marriage and Monsters'],\n", + " 'https://fichub.net/': ['FicHub', 'FicHub'],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-weaponization-of-the-mythos-youjo-senki-cthulhu-mythos-crack-parody.1062200/#post-89236046': [\"A Young Girl's Weaponization of the Mythos\"],\n", + " 'https://freewebnovel.com/oh-my-god-earthlings-are-insane/chapter-1.html': ['Oh My God! Earthlings are Insane!'],\n", + " 'https://m.fanfiction.net/s/13453490/1/Red-Thorn': ['Red Thorn'],\n", + " 'https://forums.spacebattles.com/threads/my-hero-school-adventure-is-all-wrong-as-expected-bnha-x-oregairu.697066/#post-52178275': ['My Hero School Adventure is All Wrong, As Expected',\n", + " 'My Hero School Adventure is All Wrong, as Expected',\n", + " '\"My Hero School Adventure is All Wrong, As Expected\"'],\n", + " 'https://forums.spacebattles.com/threads/a-kaiserins-post-living-arrangements-youjo-senki-fate-crossover.833232/': ['A Kaiserin’s Post Living Arrangements',\n", + " \"A Kaiserin's Post-Living Arrangements\"],\n", + " 'https://www.fimfiction.net/story/1886/the-immortal-game': ['The Immortal Game'],\n", + " 'https://m.fanfiction.net/s/6964056/1/The-Surprising-Adventures-of-a-Glaceon-in-Unova': ['The Surprising Adventures of a Glaceon in Unova'],\n", + " 'https://www.royalroad.com/fiction/21410/super-minion': ['Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion on Royal road',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion',\n", + " 'Super Minion on RR',\n", + " 'Super Minion'],\n", + " 'https://www.fanfiction.net/s/6091474/1/KOKOMO': ['KOKOMO'],\n", + " 'https://www.royalroad.com/fiction/34353/onward-to-providence/chapter/528375/loading-00': ['Onwards to Providence'],\n", + " 'https://www.royalroad.com/fiction/8894/everybody-loves-large-chests': ['Everybody Loves Larges Chests',\n", + " 'ELLC',\n", + " 'Everybody Loves Large Chests',\n", + " 'Everybody loves large chests',\n", + " 'ELLC',\n", + " 'Everybody Loves Large Chests',\n", + " 'Everybody Loves Large Chests',\n", + " 'Everybody Loves Large Chests',\n", + " 'ELLC',\n", + " 'ELLC',\n", + " 'Everybody Loves Large Chests',\n", + " 'ELLC',\n", + " 'Everybody Loves Large Chests',\n", + " 'Everybody Loves Largs Chests',\n", + " 'Everybody Loves Large Chests',\n", + " 'ELLC',\n", + " 'Everybody Loves Large Chests',\n", + " 'ELLC',\n", + " 'Everbody Loves Large Chests'],\n", + " 'https://www.royalroad.com/fiction/4293/the-iron-teeth-a-goblins-tale': ['Iron Teeth, The',\n", + " \"The Iron Teeth: A Goblin's Tale\",\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth',\n", + " 'The Iron Teeth'],\n", + " 'https://www.royalroad.com/fiction/15130/threadbare': ['Threadbare',\n", + " 'Threadbare',\n", + " 'Threadbare',\n", + " 'Threadbare',\n", + " 'Threadbear',\n", + " 'Threadbare',\n", + " 'Threadbare',\n", + " 'Threadbare*,',\n", + " 'Threadbare',\n", + " 'Threadbare',\n", + " 'Threadbare'],\n", + " 'https://www.royalroad.com/fiction/22533/a-rational-zombie-complete': ['Rational Zombie, A',\n", + " 'Rational Zombie, A',\n", + " 'Rational Zombie, A',\n", + " 'Rational Zombie, A',\n", + " 'A Rational Zombie'],\n", + " 'https://www.royalroad.com/fiction/37438/hellprinces-salvos-a-monster-evolution-litrpg': ['Salvos'],\n", + " 'https://en.wikipedia.org/wiki/Parasyte': ['Parasyte',\n", + " 'Parasyte',\n", + " 'Parasyte'],\n", + " 'https://www.royalroad.com/fiction/40888/the-great-cores-paradox': [\"Great Core's Paradox, The\",\n", + " \"Great Core's Paradox, The\",\n", + " \"The Great Core's Paradox\"],\n", + " 'https://www.reddit.com/r/rational/comments/czw6ss/transdimensional_brain_chip_ulf_gets_a_chip_in/ezuq2a0/': ['Accidental Space Spy, The'],\n", + " 'https://www.royalroad.com/fiction/59663/godclads-monster-mceldritchcyberpunkprogression': ['Godclads',\n", + " 'Godclads',\n", + " 'Godclads',\n", + " 'Godclads',\n", + " 'Godclads',\n", + " 'Godclads',\n", + " 'Godclads',\n", + " 'Royalroad'],\n", + " 'https://shouldthesun.wordpress.com/': ['Should The Sun Not Rise',\n", + " 'Should the Sun Not Rise',\n", + " 'Should the Sun not Rise',\n", + " 'Should the Sun not Rise',\n", + " 'Should The Sun Not Rise',\n", + " 'Should the Sun not Rise',\n", + " 'Should the Sun not Rise'],\n", + " 'https://www.depauw.edu/sfs/backissues/95/evansttrans95.htm': [],\n", + " 'https://www.nebraskapress.unl.edu/series/bison-frontiers-of-imagination/': ['Bison Frontiers of Imagination'],\n", + " 'https://www.bookseriesinorder.com/john-wyndham/': [\"John Wyndham's\"],\n", + " 'https://www.bookseriesinorder.com/jules-verne/': ['Jules Verne'],\n", + " 'https://forums.spacebattles.com/threads/purple-days-asoiaf-joffrey-timeloop-au.450894/reader/': ['Purple Days',\n", + " 'SpaceBattles'],\n", + " 'https://xkcd.com/483/': ['This felt relevant',\n", + " 'XKCD for everything'],\n", + " 'https://www.royalroad.com/fiction/48893/the-dungeon-without-a-system': ['Dungeon Without a System',\n", + " 'The Dungeon Without a System',\n", + " 'Dungeon Without a System, The',\n", + " 'The Dungeon Without a System'],\n", + " 'https://www.royalroad.com/fiction/57837/demon-core-a-demon-king-dungeon-core-litrpg': ['Demon Core',\n", + " 'Demon Core'],\n", + " 'https://www.royalroad.com/fiction/54046/final-core-a-holy-dungeon-core-litrpg': ['FINAL Core',\n", + " 'FINAL Core'],\n", + " 'https://www.royalroad.com/fiction/54904/goblin-cave': ['Goblin Cave',\n", + " 'Goblin Cave',\n", + " 'Goblin Cave',\n", + " 'Goblin Cave',\n", + " 'Goblin Cave',\n", + " 'Goblin Cave'],\n", + " 'https://www.royalroad.com/fiction/43271/dungeon-core-chat-room/': ['Dungeon Core Chat Room'],\n", + " 'https://archiveofourown.org/works/44996500/chapters/113218813': ['Pokemon Mercury',\n", + " 'Pokémon Mercury'],\n", + " 'https://forums.spacebattles.com/threads/ave-xia-rem-y-a-very-cliche-xianxia-story.589587/#post-41524293': ['Ave Xia Rem Y',\n", + " 'Ave Xia Rem Y',\n", + " 'Ave Xie Rem Y',\n", + " 'Ave Xia Rem Y'],\n", + " 'https://www.royalroad.com/fiction/20920/enlightened-empire': ['Enlightened Empire',\n", + " 'Enlightened Empire',\n", + " 'Enlightened Empire',\n", + " 'Enlightened Empire'],\n", + " 'https://www.royalroad.com/fiction/55687/all-the-skills-a-deckbuilding-litrpg': ['All the Skills',\n", + " 'All The Skills - A Deckbuilding LitRPG',\n", + " 'All the Skills'],\n", + " 'https://www.royalroad.com/fiction/46901/the-last-orellen': ['The Last Orellan',\n", + " 'The Last Orellan',\n", + " '\"The Last Orellen\"',\n", + " 'The Last Orellen',\n", + " 'Last Orellen, The',\n", + " 'The Last Orellen',\n", + " 'The Last Orellen',\n", + " 'The Last Orellen',\n", + " 'The Last Orrellan',\n", + " 'The Last Orellen'],\n", + " 'https://www.reddit.com/r/rational/comments/101em0c/d_monday_request_and_recommendation_thread/j2uggcm/': [],\n", + " 'https://forum.questionablequesting.com/threads/with-great-power-one-must-go-further-beyond-marvel-mha-alt-power-aka-power-plus-ultra.18234/': ['With Great Power One Must Go Further Beyond \\\\(Marvel/MHA alt power\\\\) aka Power Plus Ultra'],\n", + " 'https://www.fanfiction.net/s/8642442/1/Variant-Strain': ['Variant Strain',\n", + " 'Variant Strain',\n", + " 'Variant Strain',\n", + " 'Variant Strain'],\n", + " 'https://www.fanfiction.net/s/5536346/1/Inviolate': ['Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate',\n", + " 'Inviolate'],\n", + " 'https://forums.spacebattles.com/threads/an-undertow-of-sand-percy-jackson-and-the-cthulhu-mythos.941042/#post-76345880': ['An Undertow of Sand'],\n", + " 'https://archiveofourown.org/works/32339365': ['An Impractical Guide to Godhood'],\n", + " 'https://www.fanfiction.net/s/14043289/1/Raise': ['Raise',\n", + " 'Raise',\n", + " 'Raise (RWBY)'],\n", + " 'https://www.ishtar-collective.net/': ['The Ishtar Collective'],\n", + " 'https://en.wikipedia.org/wiki/Destiny_\\\\(video_game\\\\': ['Destiny'],\n", + " 'https://forums.spacebattles.com/threads/the-paragamer-book-ii-worm-gamer-w-ocs.1054464/': ['Paragamer book 2'],\n", + " 'https://www.reddit.com/r/rational/comments/gm33op/d_monday_request_and_recommendation_thread/fr22917/': [],\n", + " 'https://www.fanfiction.net/s/12027237/1/Breaking-Through-the-Bottom-of-the-Bottle': ['Breaking Through the Bottom of the Barrel',\n", + " 'Breaking through the Bottom of the Bottle',\n", + " 'Breaking Through the Bottom of the Barrel',\n", + " 'Breaking Through the Bottom of the Barrel'],\n", + " 'https://www.fanfiction.net/u/2661190/JMenace': ['Written in Reverse',\n", + " 'Written in Reverse'],\n", + " 'https://www.fanfiction.net/s/5645686/1/The-Girl-From-Whirlpool': ['A Girl From Whirlpool',\n", + " 'A Girl From Whirlpool'],\n", + " 'https://www.fanfiction.net/s/10171267/1/A-Chance-Encounter': ['A Chance Encounter',\n", + " 'A Chance Encounter',\n", + " 'A Chance Encounter'],\n", + " 'https://www.fanfiction.net/s/11697407/1/Contractual-Invalidation': ['Contractual Obligations',\n", + " 'Contractual Obligations'],\n", + " 'https://www.fanfiction.net/s/7186430/1/Thunderstorm': ['Thunderstorm',\n", + " 'Thunderstorm'],\n", + " 'https://www.fanfiction.net/s/11044041/1/Even-Hikigaya-Hachiman-can-write-a-Love-Letter': ['Even Hikigaya Hachiman can write a Love Letter',\n", + " 'Even Hikigaya Hachiman can write a Love Letter'],\n", + " 'https://www.fanfiction.net/s/11492096/1/SNAF-U': ['Snaf U',\n", + " 'Snaf U'],\n", + " 'https://www.fanfiction.net/s/8952765/1/Perpendicular': ['Perpendicular',\n", + " 'Perpendicular'],\n", + " 'https://www.fanfiction.net/s/7513976/1/The-Sith-The-Senator': ['The Sith and the Senator',\n", + " 'The Sith and the Senator'],\n", + " 'https://www.fanfiction.net/s/3862145/1/Contemplating-Clouds': ['Contemplating Clouds',\n", + " 'Contemplating Clouds'],\n", + " 'https://www.fanfiction.net/s/10683812/1/The-Variable': ['The Variable',\n", + " 'The Variable'],\n", + " 'https://www.fanfiction.net/s/10529576/1/The-Rain-is-Trying-to-Tell-me-Something': ['The Rain is Trying to Tell me Something',\n", + " 'The Rain is Trying to Tell me Something'],\n", + " 'https://archiveofourown.org/works/15996890/chapters/37322936': ['Birds of a Feather',\n", + " 'Birds of a Feather',\n", + " 'Birds of a Feather',\n", + " \"Bird's of a Feather\",\n", + " 'Birds of a Feather',\n", + " 'Birds of a Feather',\n", + " 'Birds of a Feather',\n", + " 'Birds of a Feather',\n", + " 'Birds of a Feather'],\n", + " 'https://old.reddit.com/r/rational/comments/ax82yl/d_monday_request_and_recommendation_thread/ehs0y3x/': ['Original rec thread.',\n", + " 'Original rec thread.'],\n", + " 'https://www.fanfiction.net/s/7423061/1/Let-Me-In-2': ['Let Me In 2',\n", + " 'Let me In 2',\n", + " 'Let Me In 2',\n", + " 'Let Me In 2',\n", + " 'Let Me In 2'],\n", + " 'https://old.reddit.com/r/rational/comments/btahxu/rec_let_me_in_2_a_rational_vampire_fanfic/': ['Original rec thread.',\n", + " 'Let Me In 2',\n", + " 'Original rec thread.'],\n", + " 'https://www.fanfiction.net/s/11111990/1/': ['Grow Young With Me',\n", + " 'Grow Young With Me'],\n", + " 'https://www.fanfiction.net/s/7962196/1/The-Hazards-of-Amity': ['The Hazards of Amity',\n", + " 'The Hazards of Amity'],\n", + " 'https://www.fanfiction.net/s/13166639/1/Unmade': ['Unmade',\n", + " 'Unmade',\n", + " 'Unmade'],\n", + " 'https://www.fanfiction.net/s/6604037/1/Precocious-Crush': ['Precocious Crush',\n", + " 'Precocious Crush'],\n", + " 'https://www.fanfiction.net/s/13133746': ['Daphne Greengrass and the Importance of Intent',\n", + " 'Daphne Greengrass and the Importance of Intent'],\n", + " 'https://www.goodreads.com/series/192725-masters-and-mages': ['Masters and Mages'],\n", + " 'https://www.goodreads.com/book/show/52693586-timberwolf': ['Timberwolf',\n", + " 'Timberwolf by Dominic Adler',\n", + " 'alternate universe ww2 Dieselpunk fantasy?',\n", + " 'Timberwolf by Dominic Adler'],\n", + " 'https://www.goodreads.com/series/310529-covenant-of-steel': ['Covenant of Steel',\n", + " 'Covenant of Steel'],\n", + " 'https://www.goodreads.com/book/show/944073.The_Blade_Itself?from_search=true&from_srp=true&qid=ngOQmAVneT&rank=1': ['The Blade Itself'],\n", + " 'https://www.goodreads.com/series/45556-the-39-clues': [],\n", + " 'https://thefifthdefiance.com/2015/11/02/introduction/': ['The Fifth Defiance',\n", + " 'The Fifth Defiance'],\n", + " 'https://www.projectlawful.com/': ['Project Lawful'],\n", + " 'https://www.royalroad.com/fiction/57018/the-systemic-lands-dark-progressive-litrpg': ['The systemic lands',\n", + " 'The Systemic Lands',\n", + " 'Systemic Lands'],\n", + " 'https://www.royalroad.com/fiction/51180/the-pillar-of-enera': ['The Pillar of Enera'],\n", + " 'https://www.royalroad.com/fiction/15193/ave-xia-rem-y': ['Ave Xia Rem y',\n", + " 'Ave Xia Rem Y'],\n", + " 'https://palewebserial.wordpress.com/about/': ['Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale',\n", + " 'Pale'],\n", + " 'https://forums.spacebattles.com/threads/the-last-angel.244209/': ['The Last Angel',\n", + " 'The Last Angel',\n", + " 'Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " '\"The Last Angel\"',\n", + " 'The Last Angel',\n", + " 'The last Angel',\n", + " 'The last angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The Last Angel',\n", + " 'The last Angel',\n", + " 'The Last Angel'],\n", + " 'https://www.fanfiction.net/s/13492440/1/Null': ['Null'],\n", + " 'http://web.archive.org/web/20120822105425/https://subterraneanpress.com/magazine/winter_2011/fiction_a_small_price_to_pay_for_birdsong_by_k._j._parker/': [],\n", + " 'https://www.fanfiction.net/s/12646396/1/A-Hunter-or-Something': ['A Hunter or Something'],\n", + " 'https://www.fanfiction.net/u/47897/Durandall': ['Durandall'],\n", + " 'https://www.fanfiction.net/s/8493574/1/Outcast': ['Outcast'],\n", + " 'https://www.fanfiction.net/s/6995020/1/At-a-Glance': ['At a Glance'],\n", + " 'https://www.royalroad.com/fiction/57018/the-systemic-lands-dark-progressive-litrpg/chapter/957898/chapter-1-day-1-welcome-to-purgatory': ['The systematic lands'],\n", + " 'https://www.royalroad.com/fiction/32067/never-die-twice': ['Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never die twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never Die Twice',\n", + " 'Never die twice'],\n", + " 'https://old.reddit.com/r/rational/comments/6xj599/biweekly_challenge_effective_altruism/dmhplhw/': [\"Death's Door\"],\n", + " 'https://nickbostrom.com/fable/dragon': ['The Fable of the Dragon Tyrant'],\n", + " 'https://www.royalroad.com/fiction/48951/a-not-so-simple-fetch-quest': ['A (Not So) Simple Fetch Quest',\n", + " 'A Not So Simple Fetch Quest',\n", + " 'A (Not So) Simple Fetch Quest'],\n", + " 'https://www.goodreads.com/book/show/50202953-piranesi': ['Piranesi',\n", + " 'Piranesi'],\n", + " 'https://www.alternatehistory.com/wiki/doku.php?id=timelines:male_rising': ['Malê Rising'],\n", + " 'https://fanfiction.net/s/7347955/1/Dreaming-of-Sunshine': ['Dreaming of Sunshine',\n", + " 'Dreaming of Sunshine'],\n", + " 'https://forums.sufficientvelocity.com/threads/wiki-warrior-power-and-fanfic-discussion-rec-idea-thread.95989/': ['Sufficient Velocity'],\n", + " 'https://forums.spacebattles.com/threads/wiki-warrior-power-and-fanfic-discussion-rec-idea-thread.971134/': ['Space Battles'],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/ue85kb/worm_fan_fic_ratings_wiki_warrior/': [],\n", + " 'https://forums.spacebattles.com/threads/super-randomizer-lux-league-of-legends-multi.947122/': ['Super Randomizer Lux'],\n", + " 'https://forums.sufficientvelocity.com/threads/wiki-warrior.64766/#post-14950769': [],\n", + " 'https://www.reddit.com/r/DnDGreentext/comments/56owc3/the_commoner_curse_of_300_wands/?utm_source=share&utm_medium=ios_app&utm_name=iossmf': ['Part 1'],\n", + " 'https://www.reddit.com/r/DnD/comments/5c5czu/commoners_curse_part_ii_xpost_from_rdndgreentext/?utm_source=share&utm_medium=ios_app&utm_name=iossmf': ['Part 2'],\n", + " 'https://www.reddit.com/r/DnDGreentext/comments/5ya386/commoners_curse_of_300_wands_part_3/?utm_source=share&utm_medium=ios_app&utm_name=iossmf': ['Part 3'],\n", + " 'https://www.reddit.com/r/DnDGreentext/comments/bbh3ou/son_of_the_curse_of_300_wands/?utm_source=share&utm_medium=ios_app&utm_name=iossmf': ['Part 4'],\n", + " 'https://mangadex.org': [],\n", + " 'https://www.royalroad.com/fiction/63759/super-supportive-superhero-system-novel': ['Super Supportive',\n", + " 'Super Supportive'],\n", + " 'https://www.royalroad.com/fiction/28023/katalepsis': ['Katalepsis',\n", + " 'Katalepsis',\n", + " 'Katalepsis',\n", + " 'Katalepsis',\n", + " 'Katalepsis',\n", + " 'Katelpsis',\n", + " 'Katalepsis',\n", + " 'Katalepsis',\n", + " 'Katalepsis'],\n", + " 'https://fiction.live/stories/Love-Bites-or-My-Reluctant-Married-Life-with-a-Bratty-Vampire-Princess/yP8SRBKt3x7kmrbGi/home': ['Love Bites; or, My Reluctant Married Life with a Bratty Vampire Princess'],\n", + " 'https://fiction.live/stories/A-Well-Earned-Vacation/gL8apeKxwYGPHqzEE/home': ['A Well Earned Vacation'],\n", + " 'https://fiction.live/stories/Yuushiro-Quest/MBdwHzXeSJzQ2Muyx/home': ['Yuushiro Quest'],\n", + " 'https://fiction.live/stories?terms=nosmut&page=1': [],\n", + " 'https://fiction.live/stories?contentRating=mature,nsfw,teen,unrated&storyStatus=active,finished,hiatus&sort=active&page=1&terms=nolewds': [],\n", + " 'https://fiction.live/stories/Kingdom-Hearts-Promises-Kept/knv5j4Daofh7EsX7k/home': ['Kingdom Hearts: Promises Kept'],\n", + " 'https://www.royalroad.com/fiction/53449/song-of-ember': ['Song of Ember.'],\n", + " 'https://www.royalroad.com/fiction/36051/memories-of-the-fall': ['Memories of the Fall',\n", + " 'Memories Of The Fall',\n", + " 'Memories of the Fall',\n", + " 'Memories of the Fall',\n", + " 'Memories of the Fall',\n", + " 'Memories of the Fall',\n", + " 'Memories of the Fall'],\n", + " 'https://www.royalroad.com/fiction/28601/arrogant-young-master-template-a-variation-4': ['Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master',\n", + " 'Arrogant Young Master Template A',\n", + " 'Arrogant Young Master, Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4',\n", + " 'Arrogant Young Master Template A Variation 4'],\n", + " 'https://www.royalroad.com/fiction/49362/the-stormcrow-cycle': ['The Stormcrow Cycle'],\n", + " 'https://www.royalroad.com/fiction/51803/scionsong': ['Scionsong'],\n", + " 'https://www.royalroad.com/fiction/33670/the-ricewelig-crown': ['The Rícewelig Crown'],\n", + " 'https://www.royalroad.com/fiction/51862/colonial-history': ['Colonial History'],\n", + " 'https://www.fanfiction.net/s/8616362/1/Harry-Potter-The-Last-Avatar': ['this Harry Potter x Avatar the Last Airbender crossover',\n", + " 'Harry Potter: The Last Avatar'],\n", + " 'https://www.panda-novel.com/details/shadow-slave(ZN\\\\': ['Shadow Slave'],\n", + " 'https://shadowslave.fandom.com/wiki/Hierarchy_of_Nightmare_Creatures_and_Awakened_Humans': [],\n", + " 'https://archiveofourown.org/works/777002/chapters/1461984': ['To the Stars',\n", + " 'To the Stars',\n", + " 'To the Stars',\n", + " 'To the Stars',\n", + " 'To The Stars',\n", + " 'To The Stars',\n", + " 'To the Stars',\n", + " 'To the Stars',\n", + " 'To The Stars',\n", + " 'To the Stars (Madoka)'],\n", + " 'https://www.fanfiction.net/s/5834947/1/Aeon-Entelechy-Evangelion': ['Aeon Entelechy Evangelion',\n", + " 'Aeon Entelechy Evangelion'],\n", + " 'https://www.fanfiction.net/s/4716493/1/Aeon-Natum-Engel': ['Aeon Natum Engel',\n", + " 'Aeon Natum Engel'],\n", + " 'https://forums.sufficientvelocity.com/threads/battle-action-harem-highschool-side-character-quest-no-sv-you-are-the-waifu.15335/': ['BAHHSCQ',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest',\n", + " 'Battle Action Harem Anime Side Character Quest',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Hischool S...',\n", + " 'Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)',\n", + " 'Battle Action Harem Highschool Side Character Quest',\n", + " 'BAHHSCQ'],\n", + " 'https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere': [],\n", + " 'https://nowherestars.net/': [],\n", + " 'https://scp-wiki.wikidot.com/': ['SCP Foundation'],\n", + " 'https://scp-wiki.wikidot.com/a-hymn-for-pandora': [],\n", + " 'https://www.fanfiction.net/s/3886999/1/Shinji-and-Warhammer40k': ['Shinji and Warhammer 40K',\n", + " 'Shinji and Warhammer 40K',\n", + " 'Shinji and Warhammer40k',\n", + " 'Shinji and the Warhammer 40K',\n", + " 'Shinji and Warhammer40K',\n", + " 'Shinji and Warhammer 40k',\n", + " 'Shinji and Warhammer 40k'],\n", + " 'https://www.royalroad.com/profile/78901/fictions': [\"Thundamoo's\"],\n", + " 'https://www.reddit.com/r/rational/comments/qkelpe/d_monday_request_and_recommendation_thread/hixj1kw/': [],\n", + " 'https://www.royalroad.com/fiction/34473': ['Shade Touched'],\n", + " 'https://www.sofurry.com/view/303594/guest': ['Thri-Kreen Erotica'],\n", + " 'https://www.goodreads.com/en/book/show/25635541': ['A succession of bad days'],\n", + " 'https://docfuture.tumblr.com/post/82363551272/fall-of-doc-future-contents': ['Fall of doc future',\n", + " 'The Fall of Doc Future',\n", + " 'The Fall of Doc Future',\n", + " 'The Fall of Doc Future',\n", + " 'The Fall of Doc Future',\n", + " 'Doc Future'],\n", + " 'https://english.stackexchange.com/questions/96608/why-does-the-multi-paragraph-quotation-rule-exist': ['See also'],\n", + " 'https://forums.spacebattles.com/threads/ex-nihilo-nihil-supernum-superpowers-cyberpunk-hard-scifi.1075620/ ': ['Space Battles'],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/ue51d7/worm_fan_fic_ratings_gamer_crossovers/': ['rated list of Worm-Gamer crossovers',\n", + " 'rated list of Worm/Gamer crossovers'],\n", + " 'https://forums.sufficientvelocity.com/threads/by-the-motive-force.114552/ \"also posted on SB but SV is more kino\"': ['By The Motive Force!'],\n", + " 'https://www.royalroad.com/fiction/62125/ghost-in-the-city-cyberpunk-gamer-si/chapter/1067748/chapter-1': ['Ghost in the City'],\n", + " 'https://www.royalroad.com/fiction/20846/the-concubines-tomb-a-dungeon-core-novel': [\"The Concubine's Tomb\",\n", + " \"The Concubine's Tomb\"],\n", + " 'https://www.royalroad.com/fiction/25361/dungeon-engineer': ['Dungeon Engineer',\n", + " 'Dungeon Engineer',\n", + " 'Dungeon Engineer',\n", + " 'Dungeon Engineer',\n", + " 'Dungeon Engineer',\n", + " 'Dungeon Engineer'],\n", + " 'https://www.royalroad.com/fiction/16679/the-dungeon-calls-for-a-sage': ['This dungeon Calls for a Sage'],\n", + " 'https://www.royalroad.com/fiction/19999/the-caring-dungeon': ['The Caring Dungeon'],\n", + " 'https://www.royalroad.com/fiction/51358/dungeon-devotee': [],\n", + " 'https://www.reddit.com/r/rational/comments/vm1i2c/rtwip_goblin_cave_dungeons_as_outsider_art/': [],\n", + " 'https://forums.spacebattles.com/threads/i-woke-up-as-a-dungeon-now-what-dungeon-worm.620521/#post-44695393': ['I Woke Up As a Dungeon, Now What?',\n", + " 'I Woke Up As a Dungeon, Now What?'],\n", + " 'https://forum.questionablequesting.com/threads/the-sins-of-cinnamon.7774/': ['The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon',\n", + " 'The Sins of Cinnamon'],\n", + " 'https://www.royalroad.com/fiction/25225/delve/chapter/368012/001-woodland': ['Delve',\n", + " 'Delve'],\n", + " 'https://www.amazon.com/Arcane-Ascension/dp/B07P6T5K3Y': ['Arcane Ascension',\n", + " 'Arcane Ascension'],\n", + " 'https://www.royalroad.com/fiction/16717/the-salamanders/chapter/195291/101': ['The Salamanders',\n", + " 'The Salamanders'],\n", + " 'https://www.amazon.com/Towers-Heaven-LitRPG-Adventure-Book-ebook/dp/B07QH93BMR': ['Towers of Heaven',\n", + " 'Towers of Heaven'],\n", + " 'https://myanimelist.net/anime/28121/Dungeon_ni_Deai_wo_Motomeru_no_wa_Machigatteiru_Darou_ka': ['Danmachi',\n", + " 'Is It Wrong to Try to Pick Up Girls in a Dungeon?'],\n", + " 'https://www.royalroad.com/fiction/39408/beware-of-chicken': ['Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken',\n", + " 'Beware of Chicken'],\n", + " 'https://forums.spacebattles.com/threads/a-farmers-tale-asoiaf.608353/': [\"A Farmer's Tale\",\n", + " \"A Farmer's Tale\",\n", + " \"A Farmer's Tale\",\n", + " \"A Farmer's Tale\",\n", + " \"A Farmer's Tale\"],\n", + " 'https://www.reddit.com/r/rational/comments/bxvocf/d_friday_open_thread/eqac711/': ['description of what I like about glowfic',\n", + " 'Another [Glowfic'],\n", + " 'https://archiveofourown.org/works/9809486': ['For the Taking',\n", + " 'For the Taking',\n", + " 'For the Taking',\n", + " '\"I\\'ve summoned a demon for sex,\" she said, on the second date and the fourth martini. \"It\\'s safe as long as you don\\'t let them talk.\"',\n", + " '\"I\\'ve summoned a demon for sex,\" she said, on the second date and the fourth martini. \"It\\'s safe as long as you don\\'t let them talk.\"',\n", + " 'For The Taking',\n", + " 'For the Taking',\n", + " 'For the Taking',\n", + " 'For the Taking',\n", + " 'For the Taking'],\n", + " 'https://glowfic.com/users/34': [],\n", + " 'https://glowfic.com/templates/155': ['with variations of the Fëanorians as main characters'],\n", + " 'https://archiveofourown.org/works/3451040/chapters/7569143': ['At the End of All Things',\n", + " 'At the End of All Things',\n", + " 'At the End of All Things',\n", + " 'At the End of All Things',\n", + " 'At The End of All Things',\n", + " 'At the end of All Things',\n", + " 'At The End of All Things'],\n", + " 'https://fanfiction.net/s/7667766/1/Making-Magick': ['Making Magick',\n", + " 'Making Magick'],\n", + " 'https://forums.spacebattles.com/threads/psi-effect-me-xcom-thread-2-rise-of-the-party-boat.307972/': ['Psi Effect',\n", + " 'Psi Effect',\n", + " 'Psi Effect',\n", + " 'posted on Space Battles',\n", + " 'Psi Effect',\n", + " \"Psi Effect's\"],\n", + " 'https://forums.spacebattles.com/threads/doors-to-the-unknown-worm-d-d-fusion-crossover.1001110/': ['Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown',\n", + " 'Doors to the Unknown\\\\(Worm/DnD\\\\)'],\n", + " 'https://archiveofourown.org/works/6211903/chapters/14231311': ['The Dragon-Kings Temple',\n", + " 'The Dragon-Kings Temple'],\n", + " 'https://www.royalroad.com/fiction/25137/worth-the-candle': ['Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'now available on Royal Road',\n", + " 'Worth the Candle',\n", + " \"Worth the Candle's\",\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle',\n", + " 'Worth the Candle'],\n", + " 'https://www.royalroad.com/fiction/60396/thresholder': ['Thresholder',\n", + " 'Thresholder',\n", + " 'Thresholder'],\n", + " 'https://www.royalroad.com/profile/78901': [\"Thundamoo's\"],\n", + " 'https://www.royalroad.com/fiction/41330/virtuous-sons-a-greco-roman-xianxia': ['Virtuous Sons',\n", + " 'Virtuous Sons',\n", + " 'Virtuous Sons',\n", + " 'Virtuous Sons: A Greco Roman Xianxia',\n", + " 'Virtuous Sons',\n", + " 'RoyalRoad',\n", + " 'Virtuous Sons'],\n", + " 'https://forums.spacebattles.com/threads/memoirs-worm-pale.1073297/': ['Memoirs'],\n", + " 'https://www.royalroad.com/fiction/59967/necroepilogos': ['Necroepilogos',\n", + " 'Necroepilogos'],\n", + " 'https://old.reddit.com/r/rational/comments/1178p4c/d_monday_request_and_recommendation_thread/j9apcqo/': [],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Literature/ReverendInsanity': ['Reverend Insanity',\n", + " 'Reverend Insanity',\n", + " 'Reverend Insanity',\n", + " 'Reverend Insanity'],\n", + " 'https://forums.spacebattles.com/threads/purple-days-asoiaf-joffrey-timeloop-au.450894/': ['Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days - ASOIAF',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days',\n", + " 'Purple Days'],\n", + " 'https://archiveofourown.org/works/43368631/chapters/109018464': ['copy on AO3'],\n", + " 'https://forums.spacebattles.com/threads/a-song-of-ice-and-fires-that-werent-all-my-fault-asoiaf-dresden-files.336499/': [\"ASoIa Fires that Weren't All My Fault\",\n", + " \"A Song of Ice and Fires That Weren't All My fault \\\\(ASOIAF/Dresden Files\\\\)\",\n", + " \"A Song of Ice and Fires That Weren't All My Fault\",\n", + " 'ASoIa Fires that Weren’t My Fault',\n", + " \"A Song of Ice and Fires that Weren't My Fault\",\n", + " \"A Song of Ice and Fires That Weren't All My fault - ASOIAF/Dresden Files\"],\n", + " 'https://forums.spacebattles.com/threads/zero-requiem-lelouch-in-asoiaf.745138/': ['Zero Requiem',\n", + " 'Zero Requiem: Lelouch in ASoIaF'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-sword-without-a-hilt-a-song-of-ice-and-fire-d-d-3-5-crossover.27579/': ['A Sword Without a Hilt',\n", + " 'A Sword Without a Hilt',\n", + " 'A Sword Without a Hilt',\n", + " 'A Sword Without a Hilt'],\n", + " 'https://archiveofourown.org/works/19003756/chapters/45128014': ['The Wheel Unbroken'],\n", + " 'https://forums.spacebattles.com/threads/asoiaf-bloodborne-thy-good-neighbor.1027683/#post-85613754': ['Thy Good Neighbor'],\n", + " 'https://archiveofourown.org/works/34500952': [],\n", + " 'https://toastystats.tumblr.com/post/111930409603/fanfictionnet-fandoms-over-time-toasty-says': [],\n", + " 'https://allisonjking.medium.com/scraping-analyzing-and-visualizing-harry-potter-fan-fiction-fa910da22673': [],\n", + " 'https://www.amazon.co.uk/Chosen-One-Adventure-Prophecy-Companion/dp/B0B985Q94Y': ['Prophecy Approved Companion'],\n", + " 'https://www.amazon.co.uk/gp/product/B07TTDGKP2/ref=ku_mi_rw_edp_ku': ['Divine Apostasy'],\n", + " 'https://www.royalroad.com/fiction/50553/double-blind-a-modern-litrpg': ['Double Blind',\n", + " 'Double Blind',\n", + " 'Double Blind'],\n", + " 'https://mybook.to/dungeoncrawlercarl': ['Dungeon Crawler Carl'],\n", + " 'https://en.wikipedia.org/wiki/Stealth_\\\\(film\\\\': ['Stealth \\\\(2005\\\\)'],\n", + " 'https://en.wikipedia.org/wiki/Speaker_for_the_Dead': ['Speaker for the Dead',\n", + " 'Speaker for the Dead'],\n", + " 'https://en.wikipedia.org/wiki/The_Worthing_Saga': ['Worthing Saga, The',\n", + " 'Worthing Saga'],\n", + " 'https://www.imdb.com/title/tt0182789/': ['Bicentennial Man'],\n", + " 'https://www.youtube.com/watch?v=FMJNta-okRw': ['Inevitability',\n", + " 'Inevitability',\n", + " 'Complex Numbers.'],\n", + " 'https://www.imdb.com/title/tt0756683/': ['Man from Earth, The',\n", + " 'The Man from Earth'],\n", + " 'https://en.wikipedia.org/wiki/Altered_Carbon': ['Altered Carbon'],\n", + " 'https://www.imdb.com/title/tt9788514/': ['Ice Age'],\n", + " 'https://www.imdb.com/title/tt0110148/': ['Interview with the Vampire'],\n", + " 'https://en.wikipedia.org/wiki/Safehold': ['Safehold',\n", + " 'Safehold* by Weber'],\n", + " 'https://en.wikipedia.org/wiki/Highlander_\\\\(franchise\\\\': ['Highlander'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/TheAgeless': ['tvtropes.org/TheAgeless,'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/RipVanWinkle': ['tvtropes.org/RipVanWinkle'],\n", + " 'https://www.royalroad.com/fiction/20568/tree-of-aeons-an-isekai-story': ['Tree of Aeons',\n", + " 'Tree of Aoens',\n", + " 'Tree of Aeon',\n", + " 'Tree of Aeons (An isekai story)',\n", + " 'Tree of Aeons',\n", + " 'Tree of Aeons;'],\n", + " 'https://www.fanfiction.net/s/3546854/1/Reunions_are_a_Bitch': ['Reunions are a Bitch'],\n", + " 'https://www.fanfiction.net/s/11126728/1/Contact-at-Kobol': ['Contact at Kobol'],\n", + " 'https://www.fanfiction.net/s/4872268/1/Turning-Point': ['Turning Point'],\n", + " 'https://forums.spacebattles.com/threads/stargate-etheria-stargate-sg-1-she-ra-and-the-princesses-of-power.966974/': ['Stargate Etheria'],\n", + " 'https://old.reddit.com/r/rational/comments/11k144r/d_monday_request_and_recommendation_thread/jbowbb8/?context=1': [],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/ForeverAfterEarth': ['TVTropes Page'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/JustForFun/Earthchild': [],\n", + " 'https://www.goodreads.com/en/book/show/6597651': ['The Windup Girl'],\n", + " 'https://www.goodreads.com/book/show/46756.Oryx_and_Crake?from_search=true&from_srp=true&qid=TxhtoK9GAb&rank=1': ['Oryx and Crake'],\n", + " 'https://www.goodreads.com/book/show/6050678-leviathan': ['Leviathan'],\n", + " 'https://www.fimfiction.net/story/76931/the-monster-below': ['The Monster Below',\n", + " 'The Monster Below'],\n", + " 'https://www.fanfiction.net/s/10677106/1/Seventh-Horcrux': ['Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " '\"Seventh Horcrux\"',\n", + " '\"Seventh Horcrux\"',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'The Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " 'Seventh Horcrux',\n", + " \"Harry Potter fanfic from Voldemort's perspective\"],\n", + " 'https://www.fanfiction.net/s/8096183/1/Harry-Potter-and-the-Natural-20': ['Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural Twenty',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'HP & Natural 20',\n", + " 'Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'HP&N20',\n", + " 'Natural 20, HP & the',\n", + " 'Harry Potter and the Natural 20',\n", + " 'HPnat20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Nat20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'HP & Nat 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter And The Natural 20',\n", + " 'Harry Potter and the Natural 20',\n", + " 'Harry Potter and the Nat 20'],\n", + " 'https://www.fanfiction.net/s/3401052/1/A-Black-Comedy': ['A Black Comedy',\n", + " 'A Black Comedy',\n", + " 'A Black Comedy,',\n", + " 'A Black Comedy',\n", + " 'A Black Comedy',\n", + " 'A Black Comedy',\n", + " 'A Black Comedy'],\n", + " 'https://harrypotter.fandom.com/wiki/Fidelius_Charm': ['Fidelius Charm'],\n", + " 'http://www.anarchyishyperbole.com/p/significant-digits.html': ['Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits',\n", + " 'Significant Digits'],\n", + " 'https://forums.spacebattles.com/threads/there-is-nothing-to-fear-harry-potter-au-gryffindor-voldemort.667057/#threadmark-category-1': [],\n", + " 'https://archiveofourown.org/works/27264121/chapters/67465199#workskin': [],\n", + " 'https://archiveofourown.org/works/15996890': ['Birds of a Feather',\n", + " 'Birds of a feather | AO3'],\n", + " 'https://forums.spacebattles.com/threads/tabloid-worm-artfic-%E2%80%94-complete.455278/': ['Tabloid',\n", + " 'Tabloid',\n", + " 'Tabloid',\n", + " 'Tabloid, a worm fanfic',\n", + " 'Tabloid'],\n", + " 'https://www.fimfiction.net/story/487641/forbidden-places': ['Forbidden Places'],\n", + " 'https://www.fimfiction.net/story/76290/celestia-sleeps-in': ['Celestia Sleeps In',\n", + " 'Celestia Sleeps In',\n", + " 'Celestia Sleeps In',\n", + " 'Celestia Sleeps In',\n", + " 'Celestia Sleeps In',\n", + " 'Celestia Sleeps In',\n", + " 'Celestia Sleeps In'],\n", + " 'https://www.fimfiction.net/story/418498/good-trooper-gilda': ['Good Trooper Gilda'],\n", + " 'https://www.fimfiction.net/story/63084/a-great-endeavor': ['A Great Endeavor',\n", + " 'The Great Endeavor'],\n", + " 'https://www.fimfiction.net/story/67362/hard-reset': ['Hard Reset',\n", + " 'The Time Loop Trilogy',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset',\n", + " 'Hard Reset'],\n", + " 'https://www.fimfiction.net/story/145711/hard-reset-2-reset-harder': ['Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2',\n", + " 'Hard Reset 2',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder',\n", + " 'Hard Reset 2: Reset Harder'],\n", + " 'https://www.fimfiction.net/story/303160/synthetic-bottled-sunlight': ['Synthetic Bottled Sunlight',\n", + " 'Synthetic Bottled Sunlights'],\n", + " 'https://www.fimfiction.net/story/41596/past-sins': ['Past Sins'],\n", + " 'https://www.fimfiction.net/story/66500/maternal-instinct': ['Maternal Instinct'],\n", + " 'https://www.fimfiction.net/story/18087/the-best-night-ever': ['The Best Night Ever',\n", + " 'The Best Night Ever',\n", + " 'The Best Night Ever',\n", + " 'The Best Night Ever',\n", + " 'The Best Night Ever by Capn_Chryssalid',\n", + " 'The Best Night Ever',\n", + " 'The Best Night Ever'],\n", + " 'https://www.royalroad.com/fiction/35125/avaunt': ['Avaunt'],\n", + " 'https://www.reddit.com/r/rational/comments/11k144r/comment/jbh7uon/?utm_source=reddit&utm_medium=web2x&context=3': [],\n", + " 'https://www.royalroad.com/fiction/48116/the-bureau-of-isekai-affairs': ['Bureau of Isekai Affairs'],\n", + " 'https://www.webtoons.com/en/romance/lore-olympus/list?title_no=1320&page=1': ['Lore Olympus'],\n", + " 'https://killsixbilliondemons.com/comic/kill-six-billion-demons-chapter-1/': ['Kill Six Billion Demons',\n", + " 'Kill Six Billion Demons',\n", + " 'Kill Six Billion Demons'],\n", + " 'https://www.schlockmercenary.com/2000-06-12': ['Schlock Mercenary',\n", + " 'Schlock Mercenary',\n", + " 'Schlock Mercenary'],\n", + " 'https://www.grrlpowercomic.com/archives/comic/gp0001/': ['Grrl Power'],\n", + " 'https://girlgeniusonline.com/comic.php?date=20021104': ['Girl Genius'],\n", + " 'https://www.drowtales.com/moonless-age/6099': ['Drowtales'],\n", + " 'http://drmcninja.com/archives/comic/0p1/': ['Dr McNinja'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/CerebusSyndrome': ['Cerebus syndrome'],\n", + " 'http://thepunchlineismachismo.com/archives/comic/02222010': ['Manly Guys Doing Manly Things'],\n", + " 'https://www.darthsanddroids.net/episodes/0001.html': ['Darths and Droids'],\n", + " 'https://www.shamusyoung.com/twentysidedtale/?p=55070': [],\n", + " 'https://www.shamusyoung.com/twentysidedtale/?p=612': ['DM of the Rings'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Webcomic/DMOfTheRings': [],\n", + " 'http://www.rice-boy.com/': ['Rice Boy'],\n", + " 'https://brainchip.thecomicseries.com/comics/first': ['Transdimensional Brain Chip'],\n", + " 'https://www.royalroad.com/fiction/15538/displaced': ['Displaced',\n", + " 'Displaced',\n", + " 'Displaced',\n", + " 'Displaced'],\n", + " 'https://forums.spacebattles.com/threads/hail-hydra-mcu-villain-si-complete.851572/reader/': ['Hail Hydra?',\n", + " 'Hail Hydra?',\n", + " 'Hail Hydra'],\n", + " 'https://www.royalroad.com/fiction/65108/death-loot-vampires': ['Death Loot & Vampires'],\n", + " 'https://www.royalroad.com/fiction/65801/slumrat-rising': ['Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising',\n", + " 'Slumrat Rising'],\n", + " 'https://old.reddit.com/r/rational/comments/6ffjma/monthly_recommendation_thread/dilqhaj/': [\"I didn't manage to enjoy that story on my first read-through attempt.\"],\n", + " 'https://fanfiction.net/s/8601250/1/A-Dead-World': ['A Dead World'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/VideoGame/Prototype': ['Prototype',\n", + " 'Prototype 1*;'],\n", + " 'https://prototype.fandom.com/wiki/Blacklight_virus': ['Blacklight'],\n", + " 'https://www.fanfiction.net/s/10602465/1/Biomass-Effect': ['Biomass Effect',\n", + " 'Biomass Effect'],\n", + " 'https://www.royalroad.com/fiction/42367/12-miles-below': ['12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles Below',\n", + " '12 Miles below',\n", + " 'Twelve Miles Below',\n", + " '12 Miles Below'],\n", + " 'https://thezombieknight.blogspot.com/': ['The Zombie Knight Saga'],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-nuclear-armageddon-youjo-senki-highfleet.1076673/#post-90730419': [\"A Young Girl's Nuclear Armageddon\"],\n", + " 'https://www.goodreads.com/book/show/21611.The_Forever_War': ['The Forever War',\n", + " 'The Forever War Trilogy'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/ComicBook/Transmetropolitan': ['Transmetropolitan'],\n", + " 'https://comicsalliance.com/the-issue-transmetropolitan-another-cold-morning/': ['Issue #8 \"Another Cold Morning”'],\n", + " 'https://en.m.wikipedia.org/wiki/Rainbows_End_\\\\(novel\\\\': ['Rainbows End (novel)'],\n", + " 'https://www.reddit.com/r/WikiSummarizer/wiki/index#wiki_f.a.q': [')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)',\n", + " ')[^(F.A.Q)'],\n", + " 'https://reddit.com/message/compose?to=WikiSummarizerBot&message=OptOut&subject=OptOut': [],\n", + " 'https://np.reddit.com/r/rational/about/banned': [],\n", + " 'https://github.com/Sujal-7/WikiSummarizerBot': [],\n", + " 'https://www.goodreads.com/book/show/4025200-the-unincorporated-man': ['The Unincorporated Man'],\n", + " 'https://en.wikipedia.org/wiki/Return_from_the_Stars': ['Return from the Stars'],\n", + " 'https://en.wikipedia.org/wiki/Re:Zero_−_Starting_Life_in_Another_World': ['Re:Zero − Starting Life in Another World'],\n", + " 'https://lnmtl.com/': [],\n", + " 'https://wertifloke.wordpress.com/2015/01/25/chapter-1/': ['Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Risen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'That seems strangely familiar...',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The waves arisen',\n", + " 'Incase anyone else wants it.',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen',\n", + " 'The Waves Arisen'],\n", + " 'https://www.fanfiction.net/s/5193644': ['Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'fanfiction of *Naruto*; free',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " '`\"Time Braid\"`',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid'],\n", + " 'https://en.wikipedia.org/wiki/Re:Zero_%E2%88%92_Starting_Life_in_Another_World': ['Re:Zero'],\n", + " 'https://author.today/work/series/2598': ['Архимаг'],\n", + " 'https://www.dndbeyond.com/sources/basic-rules/spellcasting': [],\n", + " 'https://en.wikipedia.org/wiki/Aubrey%E2%80%93Maturin_series': ['Aubrey Maturin Series'],\n", + " 'https://www.royalroad.com/fiction/29286/the-gilded-hero': ['The Gilded Hero',\n", + " 'The Gilded Hero',\n", + " 'Guilded Hero',\n", + " 'The Gilded Hero',\n", + " 'The Gilded Hero',\n", + " 'The Gilded Hero',\n", + " 'The Gilded Hero',\n", + " 'The Gilded Hero',\n", + " 'The Gilded Hero'],\n", + " 'https://forums.sufficientvelocity.com/threads/my-absolutely-incredible-astonishing-super-amazing-life-as-someone-in-another-world-is-absolutely-and-unquestionably-beyond-reproach-it-sucks.68737/': ['My Absolutely Incredible Astonishing Super-Amazing Life As Someone In Another World Is Absolutely and Unquestionably Beyond Reproach...It Sucks.'],\n", + " 'https://parahumans.wordpress.com/category/stories-arcs-1-10/arc-1-gestation/1-01/': ['Worm',\n", + " 'Worm',\n", + " 'Worm',\n", + " 'Worm'],\n", + " 'https://www.reddit.com/r/movies/comments/yy99jo/official_discussion_the_menu_spoilers/iwtfqxx/': [],\n", + " 'https://www.fictionpress.com/s/3238329/1/A-Hero-s-War': [\"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\",\n", + " \"A hero's War\",\n", + " \"A Hero's War\",\n", + " \"A Hero's War\"],\n", + " 'https://en.wikipedia.org/wiki/The_World_of_Null-A': ['The World of Null A'],\n", + " 'https://practicalguidetoevil.wordpress.com/2015/03/25/prologue/': ['A Practical Guide to Evil',\n", + " 'A Practical Guide to Evil',\n", + " 'Practical Guide to Evil',\n", + " 'Practical Guide to Evil'],\n", + " 'https://www.fanfiction.net/s/12431866/1/Sanitize': ['Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize | FanFiction',\n", + " 'Sanatize',\n", + " 'Sanitize-',\n", + " 'Sanitize-',\n", + " 'Sanitize-',\n", + " 'Sanitize-',\n", + " 'Sanitize-',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize',\n", + " 'Sanitize'],\n", + " 'https://en.wikipedia.org/wiki/Ken_Follett#Kingsbridge_series': [\"Ken Follet's Kingsbridge series\"],\n", + " 'https://mangadex.org/title/e18fe8c6-f6dc-4f05-8462-7b2083ff9a6c/kusuriya-no-hitorigoto': ['Kusuriya no Hitorigoto',\n", + " 'Kisuriya no Hitorigoto'],\n", + " 'https://mangadex.org/title/ec86fe52-2294-4244-99ce-1981cfc950ad/jin': [],\n", + " 'https://mangadex.org/title/feebe1dc-64ef-47a6-b4ed-07f47dd330cd/i-reincarnated-as-a-legendary-surgeon': ['I Reincarnated as a Legendary Surgeon'],\n", + " 'https://www.imdb.com/title/tt6741278/': ['Invincible'],\n", + " 'https://yudkowsky.tumblr.com/post/188511784460/prokopetz-bad-superhero-whose-secret-identity': ['Part 1',\n", + " 'Part 1'],\n", + " 'https://yudkowsky.tumblr.com/post/188572976735/mirasorastone-yudkowsky-prokopetz-bad': ['Part 2',\n", + " 'The sequel',\n", + " 'Part 2'],\n", + " 'https://yudkowsky.tumblr.com/post/190740125660/yudkowsky-mirasorastone-yudkowsky': ['Part 3',\n", + " 'Part 3'],\n", + " 'https://slatestarcodex.com/2015/06/02/and-i-show-you-how-deep-the-rabbit-hole-goes/': ['And I Show You How Deep The Rabbit Hole Goes',\n", + " 'Pills memes',\n", + " '…And I Show You How Deep The Rabbit Hole Goes',\n", + " 'other stories from Scott Alexander',\n", + " 'And I Show You How Deep The Rabbit-hole Goes',\n", + " '…And I Show You How Deep The Rabbit Hole Goes',\n", + " '...And I Show You How Deep the Rabbit Hole Goes',\n", + " '…*And I Show You How Deep The Rabbit Hole Goes'],\n", + " 'https://heroessavetheworld.wordpress.com/2016/09/06/big-change-ch-1-simon-martin/': ['Heroes Save The World'],\n", + " 'https://marginalrevolution.com/marginalrevolution/2022/03/how-to-find-good-tv-shows.html': ['Tyler Cowen school'],\n", + " 'https://www.royalroad.com/fiction/56655/monster-menu': ['Monster Menu'],\n", + " 'https://forums.spacebattles.com/threads/a-brocktonite-yankee-in-queen-marikas-court-worm-elden-ring.1072361/reader/': [\"A Brocktonite Yankee in Queen Marika's Court (Worm/Elden Ring)\"],\n", + " 'https://www.goodreads.com/book/show/33869182-terror-infinity-volume-1': ['Terror Inifinity'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/ExcusePlot': [],\n", + " 'https://forum.novelupdates.com/threads/and-decent-terror-infinity-style-novels-recently.126144/': [],\n", + " 'https://www.royalroad.com/fiction/65629/the-game-at-carousel-a-horror-movie-litrpg': ['The Game at Carousel',\n", + " 'The Game at Carousel: A Horror Movie LitRPG',\n", + " 'Game at Carousel, The',\n", + " 'The Game at Carousel',\n", + " 'The Game at Carousel: A Horror Movie LitRPG'],\n", + " 'https://www.imdb.com/title/tt2098220/ ': ['Hunter x Hunter'],\n", + " 'https://www.imdb.com/title/tt12057106/': ['Tower of God'],\n", + " 'https://m.manganelo.com/manga-eh118875': ['Ultimate Rock Paper Scissors'],\n", + " 'https://myanimelist.net/manga/49865/Ajin': ['Ajin: Demi Human',\n", + " 'Ajin',\n", + " 'Ajin'],\n", + " 'https://glowfic.com/posts/6322': [],\n", + " 'https://www.fanfiction.net/s/13451176/1/Chili-and-the-Chocolate-Factory-Fudge-Revelation': ['Chili and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory: Fudge Revelation',\n", + " 'Chili and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory: Fudge Revelation',\n", + " 'Chili and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory',\n", + " 'Chilli and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory',\n", + " 'Chili and the Chocolate Factory'],\n", + " 'https://imgur.com/a/gZgYTXT': [],\n", + " 'https://m.fanfiction.net/s/13472966/1/Sasuke-Uchiha-and-the-Power-of-Lies': ['Sasuke Uchiha and the Power of Lies',\n", + " 'Sasuke Uchiha and the Power of Lies'],\n", + " 'https://forums.sufficientvelocity.com/threads/dungeon-keeper-ami-sailor-moon-dungeon-keeper-story-only-thread.30066/': ['Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Amy',\n", + " 'Dungeon Keeper Amy',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami'],\n", + " 'https://www.royalroad.com/fiction/49746': ['Orochimama'],\n", + " 'https://www.fanfiction.net/s/7820743/1/Naruto-Ramen-Days': ['Naruto: Ramen Days',\n", + " 'Naruto: Ramen Days',\n", + " 'Naruto: Ramen Days',\n", + " 'Ramen Days, Naruto:'],\n", + " 'https://www.fanfiction.net/s/7305950/1/The-Empty-Cage': ['The Empty Cage',\n", + " 'The Empty Cage',\n", + " 'The Empty Cage',\n", + " 'The Empty Cage',\n", + " 'The Empty Cage',\n", + " 'Empty Cage, The',\n", + " 'The Empty Cage'],\n", + " 'https://www.royalroad.com/fiction/39336': [\"Valkyrie's Shadow\",\n", + " \"Valkyrie's Shadow\"],\n", + " 'https://www.fanfiction.net/s/8753582/1/': ['Overlady'],\n", + " 'https://forums.spacebattles.com/threads/a-young-womans-political-record-youjo-senki-saga-of-tanya-the-evil.660569/': [\"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " 'A Young womans political record',\n", + " \"A Young Woman's Political Record (Youjo Senki/Saga of Tanya the Evil)\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " 'Political Record',\n", + " 'A Young Womans Political Record',\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " 'A Young Girls Political Record',\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " 'A Young Woman’s Political Record',\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\"],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-weaponization-of-the-mythos-youjo-senki-cthulhu-mythos-crack-parody.1062200/': [\"A Young Girl's Weaponization of the Mythos\",\n", + " \"A Young Girl's Weaponization of the Mythos\",\n", + " \"A Young Girl's Weaponization of the Mythos\"],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/uo6p6a/worm_fan_fic_ratings_crack_humor/': ['My rated list of crack humor'],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/uo6ptl/worm_fan_fic_ratings_noncrack_humor/': ['My rated list of non-crack humor'],\n", + " 'https://forums.spacebattles.com/threads/nemesis-worm-au.747148/': ['Nemesis',\n", + " 'Nemesis',\n", + " 'Nemesis',\n", + " 'Nemisis',\n", + " 'Nemesis',\n", + " 'Nemesis',\n", + " 'Nemesis',\n", + " 'Nemesis',\n", + " 'Nemesis'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-hunt-is-on-worm-x-wile-e-coyote.17189/': ['The Hunt is On'],\n", + " 'http://forgotten.faithweb.com/MaxLandis/legit00.htm': ['Shocker: Legit',\n", + " 'the very fun Marvel fanfiction story *Legit',\n", + " 'The Shocker: Legit'],\n", + " 'https://forums.sufficientvelocity.com/threads/sanctioned-splintered-reboot-qaylor-crack-quest.46208/': ['Sanctioned (Worm)'],\n", + " 'https://forums.sufficientvelocity.com/threads/splintered-worm-qa-quest.24509/': ['Splintered'],\n", + " 'https://forums.sufficientvelocity.com/threads/calibration-bahhscq-sanctioned.61266/': ['Calibration (BAHHSCQ/Sanctioned)'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Roleplay/BattleActionHaremHighschoolSideCharacterQuest': ['Battle Action Harem Highschool Side Character Quest (No SV, you are the Waifu)'],\n", + " 'https://forums.sufficientvelocity.com/threads/divination-fire-emblem-three-houses-sanctioned-worm.88013/': ['Divination (Fire Emblem Three Houses/Sanctioned)'],\n", + " 'https://forums.sufficientvelocity.com/threads/injection-cultivation-qa.97359/': ['Injection (Cultivation/Sanctioned)'],\n", + " 'https://forums.sufficientvelocity.com/threads/administrative-mishap-supergirl-worm.70756/': ['Administrative Mishap'],\n", + " 'https://archiveofourown.org/series/440926': ['DC fanfiction',\n", + " 'other stories in the DC universe'],\n", + " 'https://archiveofourown.org/works/6692113': ['Bruce Wayne Twitter',\n", + " 'Bad Publicity',\n", + " 'Bad Publicity'],\n", + " 'https://www.goodreads.com/series/199001-the-masquerade': ['Traitor Baru Cormorant, The',\n", + " 'The Masquerade* series'],\n", + " 'https://www.reddit.com/r/rational/comments/3lmrm9/the_traitor_baru_cormorant/': [],\n", + " 'https://en.wikipedia.org/wiki/House_of_Cards_\\\\(season_1\\\\': ['House of Cards'],\n", + " 'https://www.imdb.com/title/tt0057012/': ['Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb'],\n", + " 'https://www.goodreads.com/series/40515-the-merchant-princes': ['Merchant Princes, The'],\n", + " 'https://en.wikipedia.org/wiki/Yes_Minister': ['Yes Minister',\n", + " 'Yes Minister'],\n", + " 'https://www.goodreads.com/en/book/show/60843047': ['Prince Out of Time, A'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/ContrivedCoincidence': [],\n", + " 'https://www.goodreads.com/series/44298-the-empire-trilogy': ['Empire Trilogy, The',\n", + " 'Empire Trilogy, The',\n", + " 'The Empire Trilogy',\n", + " 'The Empire Trilogy by Raymond E. Feist'],\n", + " 'https://en.wikipedia.org/wiki/The_Twelve_Kingdoms': ['Twelve Kingdoms, The'],\n", + " 'https://www.royalroad.com/fiction/39336/valkyries-shadow/chapter/921021/empire-in-chains-afterword': [],\n", + " 'https://www.royalroad.com/fiction/39336/valkyries-shadow': [\"Valkyrie's Shadow\",\n", + " \"Valkyrie's Shadow\",\n", + " 'Valkyries shadow',\n", + " \"Valkyrie's Shadow\",\n", + " \"Valkyrie's Shadow\",\n", + " \"Valkyrie's Shadow\",\n", + " 'Valkyrie’s Shadow',\n", + " \"Valkyrie's Shadow\",\n", + " \"Valkyrie's Shadow\"],\n", + " 'https://www.goodreads.com/author/list/19949255.Macronomicon': ['Macronomicon'],\n", + " 'https://www.projectlawful.com/posts/6827': [],\n", + " 'https://archiveofourown.org/works/32403190': [],\n", + " 'https://www.royalroad.com/fiction/44094/vell-harlan-and-the-doomsday-dorms': ['Vell Harlan and the Doomsday Dorms'],\n", + " 'https://www.royalroad.com/fiction/66481/tower-core-a-tower-management-litrpg': ['Tower Core'],\n", + " 'https://www.royalroad.com/fiction/66414/climbing-the-pyramid': ['Climbing the Pyramid'],\n", + " 'http://docfuture.tumblr.com/post/62787551366/stories': ['The Fall of Doc Future',\n", + " 'Doc Future Stories',\n", + " 'Fall of Doc Future',\n", + " 'The Fall of Doc Future and its sequels'],\n", + " 'https://www.royalroad.com/fiction/52639/edge-cases': ['Edge Cases',\n", + " 'Edge Cases',\n", + " 'Edge Cases',\n", + " 'Edge Cases',\n", + " 'Edge Cases - Royal Road'],\n", + " 'https://www.royalroad.com/fiction/36299/beneath-the-dragoneye-moons': ['Beneath the Dragon Eye Moon',\n", + " 'Beneath the Dragoneye Moons',\n", + " 'Beneath the Dragoneye Moons'],\n", + " 'https://www.royalroad.com/fiction/40373/vigor-mortis': ['Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis',\n", + " 'Vigor Mortis'],\n", + " 'https://www.royalroad.com/fiction/45534/this-used-to-be-about-dungeons': ['This used to be about dungeons',\n", + " 'This Used to Be About Dungeons',\n", + " 'This Used to be About Dungeons'],\n", + " 'https://www.royalroad.com/fiction/40641/displacement': ['Displacement',\n", + " 'Displacement',\n", + " 'Displacement'],\n", + " 'https://forums.spacebattles.com/threads/el-ahrairah-worm.372987/reader/': ['El-Ahrairah'],\n", + " 'https://www.youtube.com/watch?v=pDHqAj4eJcM': ['From'],\n", + " 'https://www.fanfiction.net/s/12119784/1/The-Games-We-Play-By-Ryuugi': ['The Games we Play',\n", + " 'The Games We Play',\n", + " 'The Games we Play'],\n", + " 'https://forums.spacebattles.com/threads/a-daring-synthesis-worm-the-gamer.607375/': ['A Daring Synthesis',\n", + " 'A daring synthesis',\n", + " 'A Daring Synthesis',\n", + " 'A daring synthesis',\n", + " 'A Daring Synthesis',\n", + " 'A Daring Synthesis',\n", + " 'A Daring Synthesis'],\n", + " 'https://forums.sufficientvelocity.com/threads/by-the-motive-force.114552/': ['By The Motive Force!'],\n", + " 'https://forums.sufficientvelocity.com/threads/skitterdoc-2077.109765/': ['Skitterdoc 2077',\n", + " 'Skitterdoc'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-cyborg-in-the-wasteland-fallout-self-insert.106091/': ['Cyborg in the Wasteland'],\n", + " 'https://m.fanfiction.net/s/9271192/1/Transcendent-Humanity': ['Transcendent Humanity'],\n", + " 'https://myanimelist.net/manga/142600/Takopii_no_Genzai': [\"Takopii no Genzai / Takopi's Original Sin\"],\n", + " 'https://myanimelist.net/manga/3731/Solanin': ['Solanin',\n", + " 'Solanin'],\n", + " 'https://myanimelist.net/manga/5820/Sumire%E2%99%A116-sai': ['Sumire♡16-sai!',\n", + " 'Sumire 16-Sai!!'],\n", + " 'https://myanimelist.net/manga/10552/Hoshi_no_Samidare': ['Hoshi no Samidare / Lucifer and the Biscuit Hammer'],\n", + " 'https://myanimelist.net/manga/29799/Ad_Astra__Scipio_to_Hannibal': ['Ad Astra: Scipio to Hannibal'],\n", + " 'https://myanimelist.net/manga/50217/Kamisama_ga_Uso_wo_Tsuku': ['Kamisama ga Uso wo Tsuku / The Gods Lie',\n", + " 'The Gods Lie'],\n", + " 'https://myanimelist.net/manga/145863/Sayonara_Eri': ['Sayonara Eri'],\n", + " 'https://en.wikipedia.org/wiki/Eagle:_The_Making_of_an_Asian-American_President': ['Eagle: The Making of an Asian-American President'],\n", + " 'https://en.wikipedia.org/wiki/Planetes': ['Planetes',\n", + " 'Planetes'],\n", + " 'https://youtube.com/@MediaZealot': ['Media Zealot'],\n", + " 'https://youtube.com/@TwoMinutePapers': ['Two minute papers'],\n", + " 'https://forums.spacebattles.com/threads/taylor-and-the-unseelie-court-worm-au.498094/': ['Taylor and the Unseelie Court'],\n", + " 'https://www.youtube.com/@CaptainDisillusion/videos': ['Captain Disillusion'],\n", + " 'https://www.royalroad.com/fiction/42226/foxs-tongue-and-kirins-bone': [\"Fox's Tongue and Kirin's Bone\",\n", + " \"Fox's Tongue and Kirin's Bone\",\n", + " \"Fox's Tongue & Kirin's Bone\",\n", + " \"Fox's tongue and Kirin's bone\",\n", + " \"Fox's Tongue and Kirin's Bone\"],\n", + " 'https://www.goodreads.com/book/show/17910048-the-goblin-emperor': ['The Goblin Emperor',\n", + " 'The Goblin Emperor'],\n", + " 'https://gwern.net/death-note-anonymity': ['Death Note: L, Anonymity & Eluding Entropy'],\n", + " 'https://en.wikipedia.org/wiki/Rita_Hayworth_and_Shawshank_Redemption': [],\n", + " 'https://en.wikipedia.org/wiki/The_Shawshank_Redemption': [],\n", + " 'https://www.goodreads.com/book/show/816.Cryptonomicon': ['Cryptonomicon',\n", + " 'Cryptonomicon'],\n", + " 'https://www.goodreads.com/series/309211-dungeon-crawler-carl': ['Dungeon Crawler Carl',\n", + " 'Dungeon Crawler Carl'],\n", + " 'https://www.fanfiction.net/s/10360716/1/The-Metropolitan-Man': ['Metropolitan Man, The',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Lex Luthor from Metropolitan Man',\n", + " 'The Metropolitian Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man.',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man.',\n", + " 'Metropolian Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Example.',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitian Man',\n", + " 'The Metropolitan Man.',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man',\n", + " 'The Metropolitan Man'],\n", + " 'https://en.wikipedia.org/wiki/The_Truman_Show': ['Truman Show, The',\n", + " 'The Truman Show'],\n", + " 'https://archiveofourown.org/works/23705065/chapters/56917558': [\"Truman's Map\"],\n", + " 'https://www.royalroad.com/fiction/48012/the-number': ['Number, The',\n", + " 'The Number',\n", + " 'Number, The;',\n", + " 'Number, The',\n", + " 'Number, The;'],\n", + " 'https://en.wikipedia.org/wiki/Ender%27s_Shadow': [\"Ender's Shadow\"],\n", + " 'https://www.anime-planet.com/manga/parasyte': ['Parasyte'],\n", + " 'https://www.royalroad.com/fiction/50194/surviving-the-succession-a-transmigration-fantasy': ['Surviving the Succession',\n", + " 'Surviving the Succession',\n", + " 'Surviving the Succession'],\n", + " 'https://archiveofourown.org/works/8791510/chapters/20154553': ['Peaks and Valleys'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-pride-before-pokemon-xianxia.111674/#post-26274506': ['The Pride Before'],\n", + " 'https://archiveofourown.org/series/1589614': ['Mind Over Matter series',\n", + " 'Mind Over Matter'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-song-of-peace-imperial-regent-quest-40k.88949/': ['A Song of Peace: Imperial Regent Quest',\n", + " 'A Song of Peace: Imperial Regent Quest',\n", + " 'A Song of Peace'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/FactoryIsolation': ['Factory Isolation'],\n", + " 'https://forums.sufficientvelocity.com/threads/brocktons-celestial-forge-worm-jumpchain.70036/threadmarks': [\"Brockton's Celestial Forge\"],\n", + " 'https://www.royalroad.com/fiction/40920/the-path-of-ascension': ['The Path of Ascension',\n", + " 'Path of Ascension',\n", + " 'The Path of Ascension',\n", + " 'The Path of Ascension'],\n", + " 'https://metaphor.systems/': ['Metaphor'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Main/FanficRecommendations': ['Tv Tropes Fanfic Recs'],\n", + " 'https://forum.questionablequesting.com/threads/the-erogamer-original-complete.5465/': ['The Erogamer'],\n", + " 'https://www.royalroad.com/fiction/65848/the-forerunner-initiative': ['The Forerunner Initiative'],\n", + " 'https://tiraas.net/': ['The Gods Are Bastards',\n", + " 'The Gods are Bastards',\n", + " 'The Gods are Bastards',\n", + " 'The Gods are Bastards',\n", + " 'The Gods Are Bastards',\n", + " 'The Gods are Bastards'],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that': ['Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That',\n", + " 'Only Villains Do That'],\n", + " 'https://www.royalroad.com/fiction/57697/ends-of-magic-antimage-litrpg?sorting=newest': [],\n", + " 'https://www.goodreads.com/book/show/35066358-the-first-fifteen-lives-of-harry-august': ['The First 15 Lives of Harry August',\n", + " 'First 15 Lives of Harry August',\n", + " 'The First Fifteen Lives of Harry August'],\n", + " 'http://spiderrobinson.com/melancholyelephants.html': ['Melancholy Elephants'],\n", + " 'https://novelbin.net/n/the-mech-touch/chapter-1': ['The Mech Touch'],\n", + " 'https://www.reddit.com/r/zlibrary/comments/zx6z62/megathread_how_to_access_zlibrary_on_tor_app/': [],\n", + " 'https://www.pcgamer.com/the-top-100-pc-games-2022/': [\"PC Gamer's latest Top 100 Games of All Time list\"],\n", + " 'https://www.royalroad.com/fiction/21322/re-trailer-trash': ['Re: Trailer Trash',\n", + " 'Re:Trailer Trash',\n", + " 'RE: Trailer Trash',\n", + " 'Re: Trailer Trash',\n", + " 'Re: Trailer Trash',\n", + " 'Re: Trailer Trash',\n", + " 'RE: Trailer Trash',\n", + " 'RE: Trailer Trash',\n", + " 'RE: Trailer Trash'],\n", + " 'https://www.royalroad.com/fiction/59503/the-adventures-of-rania-mortal-the-perfectly-normal': ['The Adventures of Rania Mortal the Perfectly Normal Elf',\n", + " 'Rania Mortal',\n", + " 'The Adventures of Rania Mortal the Perfectly Normal Elf',\n", + " 'The Adventures of Raina Mortal the Perfectly Normal Elf'],\n", + " 'https://www.pcgamebenchmark.com/outer-wilds-system-requirements': [],\n", + " 'https://store.steampowered.com/app/881100/Noita/': ['Noita',\n", + " 'Noita',\n", + " 'Noita'],\n", + " 'https://www.youtube.com/watch?v=UhetH7PwVh8&ab_channel=Albino': ['Noita, a roguelike for the mentally deranged'],\n", + " 'https://steamcommunity.com/sharedfiles/filedetails/?id=2297568811': ['Spell Labs'],\n", + " 'https://steamcommunity.com/sharedfiles/filedetails/?id=2191848289': ['Glowing Hearts'],\n", + " 'https://steamcommunity.com/sharedfiles/filedetails/?id=2572385079': ['Wand Dbg'],\n", + " 'https://steamcommunity.com/sharedfiles/filedetails/?id=2007426411': [\"Dead Isn't Dead\"],\n", + " 'https://forums.spacebattles.com/threads/an-undertow-of-sand-percy-jackson-and-the-cthulhu-mythos.941042/': ['An Undertow of Sand',\n", + " 'An Undertow of Sand',\n", + " 'An Undertow of Sand'],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-weaponization-of-the-mythos-youjo-senki-cthulhu-mythos-crack-parody.1062200': [\"A Young Girl's Weaponization of the Mythos\"],\n", + " 'https://forums.spacebattles.com/threads/a-young-girls-nuclear-armageddon-youjo-senki-highfleet.1076673/': [\"A Young Girl's Nuclear Armageddon\",\n", + " 'A Young Girls Nuclear War'],\n", + " 'https://forums.spacebattles.com/threads/dark-legend-of-potter-crimson-demons-awaken-konosuba-x-harry-potter.958832/': ['Dark Legend of Potter: Crimson demons awaken',\n", + " 'Dark Legend of Potter: Crimson Demons Awaken'],\n", + " 'https://forums.spacebattles.com/threads/god-save-the-queen-worm-star-wars.1022888/': ['God Save the Queen'],\n", + " 'https://forums.spacebattles.com/threads/will-of-the-force-worm-star-wars.1086525/': ['Will of The Force',\n", + " 'Will of the Force'],\n", + " 'https://forums.spacebattles.com/threads/eternal-paragon-mass-effect-legend-of-zelda-fusion.1061972': ['Eternal Paragon'],\n", + " 'https://www.alternatehistory.com/forum/threads/sorcerous-woe-lovecraft-mythos-asoiaf-si.539664/': ['Sorcerous Woe'],\n", + " 'https://forums.spacebattles.com/threads/wayward-wolf-asoiaf-x-witcher.863942': ['Wayward Wolf'],\n", + " 'https://forums.spacebattles.com/threads/count-of-serenno-youjo-senki-x-star-wars.1071101': ['Count of Serenno',\n", + " 'Count of Serenno'],\n", + " 'https://www.royalroad.com/fiction/47997/overkill': ['Overkill',\n", + " 'God Save the Queen'],\n", + " 'https://www.royalroad.com/fiction/48173/ghost-spider': ['Ghost Spider'],\n", + " 'https://www.royalroad.com/fiction/48948/a-soldier-adrift-captain-westeros': ['A Soldier Adrift: Captain Westeros'],\n", + " 'https://forums.spacebattles.com/threads/asoiaf-bloodborne-thy-good-neighbor.1027683': ['Thy Good Neighbor'],\n", + " 'https://www.fanfiction.net/s/12593784/1/The-Histories-of-the-Vilebloods-of-Cainhurst': ['The Histories of the Vilebloods of Cainhurst'],\n", + " 'https://forums.spacebattles.com/threads/seek-worm-bloodborne.1010844/': ['Seek'],\n", + " 'https://forums.spacebattles.com/threads/skitterdoc-2077-worm-cyberpunk-2077-crossover.1052653/': ['Skitterdoc 2077',\n", + " 'Skitterdoc 2077 | Spacebattles',\n", + " 'Skitterdoc 2077'],\n", + " 'https://www.fanfiction.net/s/14170637/1/The-Pixie-of-the-Hidden-Leaf': ['The Pixie of the Hidden Leaf'],\n", + " 'http://crystal.raelifin.com/': ['Crystal Society',\n", + " 'Crystal Trilogy',\n", + " 'Crystal Society',\n", + " 'Crystal Trilogy',\n", + " 'Crystal Society',\n", + " 'Crystal Society',\n", + " 'Crystal Trilogy',\n", + " 'Crystal Society',\n", + " 'Crystal Society',\n", + " 'Crystal Society',\n", + " 'Crystal Trilogy',\n", + " 'Crystal Society',\n", + " 'Crystal Trilogy',\n", + " 'Crystal Society'],\n", + " 'https://zerohplovecraft.substack.com/p/the-gig-economy': ['The Gig Economy'],\n", + " 'https://www.goodreads.com/en/book/show/17863': ['Accelerando'],\n", + " 'https://gwern.net/fiction/clippy': [\"It Looks Like You're Trying to Take Over the World\"],\n", + " 'https://www.lesswrong.com/posts/AyNHoTWWAJ5eb99ji/another-outer-alignment-failure-story': ['Another (Outer) Alignment Failure Story'],\n", + " 'https://www.lesswrong.com/posts/vJFdjigzmcXMhNTsx/simulators': ['Simulators'],\n", + " 'https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldmagikarp-plus-prompt-generation': ['SolidGoldMagekarp'],\n", + " 'https://www.lesswrong.com/posts/jkY6QdCfAXHJk3kea/the-petertodd-phenomenon': ['The ‘ petertodd’ phenomenon'],\n", + " 'https://www.lesswrong.com/posts/D7PumeYTDPfBTp3i7/the-waluigi-effect-mega-post': ['The Waluigi Effect'],\n", + " 'https://www.lesswrong.com/users/zvi': [\"Zvi's weekly AI newsletter\"],\n", + " 'https://www.newyorker.com/science/annals-of-artificial-intelligence/will-ai-become-the-new-mckinsey': ['Will AI become the new McKinsey?'],\n", + " 'https://forums.spacebattles.com/threads/dire-worm-worm-au-oc.300816/': ['Dire/Worm',\n", + " 'Dire Worm',\n", + " 'Dire Worm',\n", + " 'Dire Worm',\n", + " 'Dire Worm!',\n", + " 'Dire Worm',\n", + " 'Dire Worm',\n", + " 'a great crossover with Worm by the same author!',\n", + " 'Dire Worm'],\n", + " 'https://en.wikipedia.org/wiki/Negima!_Magister_Negi_Magi': ['Mahou Sensei Negima'],\n", + " 'https://forums.spacebattles.com/threads/a-young-womans-political-record-youjo-senki-saga-of-tanya-the-evil.660569/reader/': [\"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record\",\n", + " \"A Young Woman's Political Record.\"],\n", + " 'https://omnybus.tumblr.com/post/697053854902140928/indeed-one-of-my-least-favorite-tropes-is-the': [],\n", + " 'https://www.goodreads.com/series/336418-the-hero-of-the-valley': ['Hero of the Valley'],\n", + " 'https://www.webtoons.com/en/sf/seed/prologue/viewer?title_no=1480&episode_no=1': ['Seed',\n", + " 'Seed'],\n", + " 'https://palelights.com/': ['Pale Lights'],\n", + " 'https://i.imgur.com/Nuosq8f.png': [],\n", + " 'https://forums.spacebattles.com/threads/the-weaving-force-worm-sw-pseudo-post-gm.1058679/': ['The Weaving Force',\n", + " 'The Weaving Force',\n", + " 'The Weaving Force'],\n", + " 'https://www.reddit.com/r/rational/comments/13i96zf/d_monday_request_and_recommendation_thread/jk9mehx': [],\n", + " 'https://forums.spacebattles.com/threads/path-of-ruin-star-wars-si.541256/#post-36622370': ['Path of Ruin'],\n", + " 'https://www.royalroad.com/fiction/46319/speedrunning-the-multiverse': ['Speedrunning the Multiverse',\n", + " 'Speedrunning the Multiverse',\n", + " 'Speedrunning the Multiverse'],\n", + " 'https://forums.sufficientvelocity.com/threads/twisted-garden-pokemon-erika-au.116310/': ['One of those grimdarker takes on Pokemon.'],\n", + " 'https://unjustdepths.com/': ['Unjust Depths.'],\n", + " 'https://forums.spacebattles.com/members/zerrer.307452/': ['Zerrer'],\n", + " 'https://forums.spacebattles.com/threads/child-of-monsters-worm.892684/': ['Child of Monsters (Worm)'],\n", + " 'https://forums.sufficientvelocity.com/threads/panopticon-a-game-of-posthumans-perniciousness-paranoia-politics-and-plasmaguns.47/': ['Panopticon',\n", + " 'Panopticon'],\n", + " 'https://forums.spacebattles.com/threads/conquest-quest-exalted-worm-story-only-thread.279681/': ['Conquest Quest'],\n", + " 'https://forums.spacebattles.com/threads/cauldron-quest™.521047/': ['Cauldron Quest'],\n", + " 'https://forums.spacebattles.com/threads/kool-a-rooster-cocoa-brawn-quest-illustrated-worm-quest-humor.568714/#post-39333838': ['KOOL'],\n", + " 'https://forums.sufficientvelocity.com/threads/armsmasters-social-advice-quest.23651/#post-4707498': ['Armsmaster’s Social Advice Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/puella-magi-adfligo-systema.2538/': ['Puella Magi Adfligo Systema',\n", + " 'Puella Magi Adfligo Systema',\n", + " 'Puella Magi Adfligo Systema',\n", + " 'Puella Magi Adfligo Systema'],\n", + " 'https://forum.questionablequesting.com/threads/polyhistor-academy-original-setting-survival-quest.614/': ['Polyhistor Academy',\n", + " 'Polyhistor',\n", + " 'Polyhistor Academy',\n", + " 'Polyhistor Academy',\n", + " 'Polyhistor Academy.',\n", + " 'Year 1'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-path-unending-a-cultivation-quest.62599/#post-14380696': ['The Path Unending'],\n", + " 'https://forums.sufficientvelocity.com/threads/esquestria-the-house-of-the-sun-a-pony-cultist-experience.71721/': ['Esquestria: The House of the Sun - A pony cultist experience',\n", + " 'Esquestria: The House of the Sun',\n", + " 'Esquestria: The House of The Sun',\n", + " 'Esquestria: The House of the Sun - A pony cultist experience'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-man%E2%80%99s-dream-never-dies-a-one-piece-quest.23728/': ['A Man’s Dream Never Dies: A One Piece Quest',\n", + " \"A Man's Dream Never Dies: A One Piece Quest\"],\n", + " 'https://forums.sufficientvelocity.com/search/13107362/?t=post&c[content]=thread&c[users]=Rihaku&o=date': ['Rihaku'],\n", + " 'https://forums.spacebattles.com/threads/conquest-quest-exalted.272472/': ['Conquest Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/harry-potter-and-the-scabbard-of-excalibur-au.99893/': ['Harry Potter and the Scabbard of Excalibur'],\n", + " 'https://www.reddit.com/user/ahasuerus_isfdb/comments/uo5wzx/worm_fan_fic_ratings_quests/': ['rated list of Worm quests'],\n", + " 'https://forums.sufficientvelocity.com/threads/now-you-feel-like-number-none-bleach-arrancar-quest.37531/': ['Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now you feel like number none',\n", + " 'Now you Feel Like Number None',\n", + " 'Now You Feel Like Number None',\n", + " 'Now you feel like number none',\n", + " 'Now You Feel Like Number None'],\n", + " 'https://forums.spacebattles.com/threads/hive-queen-quest-by-quest-drone-archive-thread.721162/#post-54399571': ['Hive Queen Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/penetrator-quest-thread-11-variably-holy-matrimony-demon-souls-warhammer-fantasy.12816/': ['Penetrator Quest'],\n", + " 'https://forums.spacebattles.com/threads/warble-case-53-worm.939704/': ['Warble'],\n", + " 'https://forums.sufficientvelocity.com/threads/forge-of-destiny-xianxia-quest.35583/': ['Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny by yrsillar',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny'],\n", + " 'https://forums.sufficientvelocity.com/threads/usagi-quest-ck3-princess-maker-sailor-moon.73457/': ['Usagi Quest',\n", + " 'Usagi Quest',\n", + " 'Usagi Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/rhunrikki-strollar-warhammer-fantasy-golden-age-dwarf-runelord-quest.63581/': ['Rhunrikki Strollar',\n", + " 'Rhunriki Strollar',\n", + " 'Rhunrikki strollar'],\n", + " 'https://forums.sufficientvelocity.com/threads/fate-hollow-fake.12936/': ['Fate/Hollow Fake',\n", + " 'Fate/Hollow Fake',\n", + " 'Fate/Hollow Fake',\n", + " 'Fate/hollow fake',\n", + " 'Fate/Hollow Fake'],\n", + " 'https://forums.sufficientvelocity.com/threads/alchemical-solutions-worm-exalted-story-only-thread.3388/': ['Alchemical Solutions'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-catgirls-last-chance-for-high-school-romance-complete.46879/': [\"A Catgirl's Last Chance for High School Romance\"],\n", + " 'https://forums.sufficientvelocity.com/threads/maid-to-love-you-a-clockwork-romance.62788/': ['Maid to Love You'],\n", + " 'https://forums.spacebattles.com/threads/a-geeks-guide-corporation-of-occult-research-and-extermination-complete.330378/#post-16696620': ['C.O.R.E.'],\n", + " 'https://forum.questionablequesting.com/threads/everybody-loves-homura-pmmm.7674/': ['Everybody Loves Homura'],\n", + " 'https://forum.questionablequesting.com/threads/your-hero-academia-unbreakable-mha-kirishima-quest-narrative-edition.12841/': ['Unbreakable'],\n", + " 'https://forums.sufficientvelocity.com/threads/a-deathly-silence-rwby-drakengard-3.39010/': ['A Deathly Silence'],\n", + " 'https://forums.sufficientvelocity.com/threads/sayakaquest-story-only-thread.9401/': ['SayakaQuest',\n", + " 'Story Only Thread'],\n", + " 'https://forums.sufficientvelocity.com/threads/on-the-road-to-elspar-book-1-dryad-mercenary-schoolgirl-quest.30513/': ['On The Road to Elspar'],\n", + " 'https://forums.sufficientvelocity.com/threads/petals-of-titanium-my-life-as-a-mecha-setting-bridge-bunny-quest.46293/': ['Petals of Titanium'],\n", + " 'https://forums.spacebattles.com/threads/have-you-tried-dueling-it-away-a-yu-gi-oh-quest.935574/': ['Have You Tried Dueling It Away'],\n", + " 'https://forums.spacebattles.com/threads/path-of-enlightenment-dojo-quest-reboot-dragon-ball.875556/': ['Path of Enlightenment: Dojo Quest'],\n", + " 'https://forums.spacebattles.com/threads/mysteries-of-the-silk-road-agg-alike-alternate-history.464218/': ['Mysteries of the Silk Road'],\n", + " 'https://forums.spacebattles.com/threads/heir-of-the-bruce-battletech-dynasty-quest.334983/': ['Bruce Quest',\n", + " 'Bruce Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/devourer-of-worlds-a-lavos-spawn-quest-chrono-trigger-x-rwby-crossover-au-elements.45591/': ['Devourer of Worlds',\n", + " 'Devourer of Worlds: A Lavos Spawn Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/end-of-an-era-naruto-au.21256/': ['End of an Era'],\n", + " 'https://forums.sufficientvelocity.com/threads/we-have-the-technology-penny-quest.42457/': ['We Have The Technology: Penny Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/ten-pounds-of-gold-a-pro-wrestling-quest.31988/': ['Ten Pounds of Gold: A Pro Wrestling Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/of-gods-and-monsters-a-raynare-quest.42842/': ['Of Gods and Monsters: A Raynare Quest'],\n", + " 'https://forums.sufficientvelocity.com/threads/uncle-grubbs-mysterious-mansion.21410/': [\"Uncle Grubb's Mysterious Mansion\"],\n", + " 'https://forums.sufficientvelocity.com/threads/ignition-mtg-multicross-planeswalker-pc.26099/': ['Ignition',\n", + " 'Ignition',\n", + " 'Ignition'],\n", + " 'https://forums.sufficientvelocity.com/threads/the-practice-war-complete.31698/': ['The Practice War'],\n", + " 'https://forums.sufficientvelocity.com/threads/lieutenant-fusilier-in-the-farthest-reaches.73927/': ['Lieutnant Fusilier'],\n", + " 'https://m.fanfiction.net/s/12676114/1/': ['Are You Not Sufficiently Comfy?',\n", + " 'Are you not sufficiently comfy? (Stellaris)'],\n", + " 'https://archiveofourown.org/works/38128243': ['Mandatory Pampering'],\n", + " 'https://forums.spacebattles.com/threads/whats-her-name-in-hufflepuff-harry-potter-self-insert.662488/': [\"What's Her Name In Hufflepuff\",\n", + " 'What’s her name in hufflepuff',\n", + " \"What's Her Name in Hufflepuff\",\n", + " \"What's Her Name in Hufflepuff\"],\n", + " 'https://www.audible.com/pd/When-the-Heavens-Went-on-Sale-Audiobook/B0BCCLS25B': ['When the Heavens Went on Sale'],\n", + " 'https://forums.sufficientvelocity.com/threads/scientia-weaponizes-the-future.82203/': ['Scientia Weaponizes The Future'],\n", + " 'https://www.reddit.com/r/rational/comments/13i96zf/d_monday_request_and_recommendation_thread/jk9mehx/': [],\n", + " 'https://forums.spacebattles.com/threads/easy-mode-gamer-multicross-si.491065/reader/': [],\n", + " 'https://archiveofourown.org/works/2393225/chapters/5288507': ['Fairy Dance of Death',\n", + " 'Fairy Dance of Death',\n", + " 'Fairy Dance of Death'],\n", + " 'https://archiveofourown.org/works/9402014/chapters/21285149': ['The World As It Appears To Be (Overwatch)',\n", + " 'The World As It Appears To Be',\n", + " 'The World As It Appears To Be',\n", + " 'The World As It Appears To Be',\n", + " 'The World As It Appears to Be',\n", + " 'The World As It Appears To Be',\n", + " 'The World as it Appears to Be',\n", + " 'The World As It Appears To Be',\n", + " 'The World As It Appears To Be'],\n", + " 'https://forums.spacebattles.com/threads/skitterdoc-2077-worm-cyberpunk-2077-crossover.1052653/#post-88276522': ['Skitterdoc (cyberpunk/worm)'],\n", + " 'https://archiveofourown.org/works/35984962/chapters/89706349': ['Runs in the Family (Overwatch)'],\n", + " 'https://forums.spacebattles.com/threads/factory-isolation-si-multicross.404479/': ['Factory Isolation (Factorio)',\n", + " 'Factory Isolation',\n", + " 'Factory Isolation',\n", + " 'Factory Isolation',\n", + " 'Factory Isolation'],\n", + " 'https://forums.spacebattles.com/threads/the-king-in-the-long-night-asoiaf-got-stellaris-uplift-project.578392/': ['King in the long night (Stellaris)',\n", + " 'The King in the Long Night',\n", + " 'The King in the Long Night',\n", + " 'The King in the Long Night',\n", + " 'The King in the Long Night'],\n", + " 'https://www.royalroad.com/fiction/62125/ghost-in-the-city-cyberpunk-gamer-si': ['Ghost in the city (Cyberpunk)',\n", + " 'Ghost in the City: Cyberpunk Gamer SI'],\n", + " 'https://www.afterdinnerconversation.com/': ['After Dinner Conversation.'],\n", + " 'https://www.royalroad.com/fiction/25475/palus-somni': ['Paulus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni',\n", + " 'Palus Somni'],\n", + " 'https://forums.sufficientvelocity.com/threads/warhammer-fantasy-divided-loyalties-an-advisors-quest.44838/page-13532#post-28100687': [],\n", + " 'https://www.royalroad.com/fiction/66700/beyond-the-aeonshift-a-cultivation-magic-epic': ['Beyond the Aeonshift'],\n", + " 'https://www.royalroad.com/fiction/68679/return-of-the-runebound-professor': ['Return of the Runebound Professor'],\n", + " 'https://www.royalroad.com/fiction/67633/disco-inferno': ['Disco Inferno'],\n", + " 'https://www.royalroad.com/fiction/31514/the-menocht-loop': ['The Menocht Loop',\n", + " 'Menocht Loop, The',\n", + " 'Menocht Loop',\n", + " 'The Menocht Loop',\n", + " 'The Menocht Loop',\n", + " 'The Menocht Loop',\n", + " 'The Menocht Loop'],\n", + " 'https://www.royalroad.com/fiction/68117/i-ran-away-to-evil-a-litrpg-romcom': ['I Ran Away To Evil'],\n", + " 'https://mangadex.org/title/95543d8f-05ba-4345-8800-bc75f4a3ed78/chichi-to-hige-gorilla-to-watashi': ['Dad, the Beard Gorilla, and I'],\n", + " 'https://mangadex.org/title/e5e6b437-611a-4d7f-81a3-c3cd692fc885/bonnouji': ['Bonnouji'],\n", + " 'https://mangadex.org/title/30f3ac69-21b6-45ad-a110-d011b7aaadaa/tonikaku-kawaii?tab=chapters&page=2': ['Tonikaku Kawaii'],\n", + " 'https://mangadex.org/title/a25e46ec-30f7-4db6-89df-cacbc1d9a900?tab=chapters': ['Horimiya'],\n", + " 'https://forums.spacebattles.com/threads/we-are-each-our-own-devil-youjo-senki-saga-of-tanya-the-evil.815438/reader/': ['We Are Each Our Own Devil',\n", + " 'We Are Each Our Own Devil'],\n", + " 'https://forums.spacebattles.com/threads/theos.1074960/': ['Theos'],\n", + " 'https://www.royalroad.com/fiction/41852/the-last-ship-in-suzhou': ['The Last Ship in Suzhou',\n", + " 'The Last Ship in Suzhou',\n", + " 'The Last Ship in Suzhou',\n", + " 'The Last Ship of Suzhou',\n", + " 'The Last Ship in Suzhou',\n", + " 'Last Ship in Suzhou'],\n", + " 'https://www.fanfiction.net/s/7613196/1/The-Pureblood-Pretense': ['The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense',\n", + " 'The Pureblood Pretense'],\n", + " 'https://www.goodreads.com/series/41101-the-lost-fleet': ['The Lost Fleet Series'],\n", + " 'https://forums.spacebattles.com/threads/sublight-drive-star-wars.1095425': ['Sublight Drive',\n", + " 'Sublight Drive',\n", + " 'Sublight Drive'],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/765419/214-in-which-the-dark-lord-is-the-lesser-evil': [],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/768879/216-in-which-the-dark-lord-suffers-the-little': [],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/807725/230-in-which-the-dark-lord-gets-his-hands-dirty': [],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/818541/231-in-which-the-dark-lord-battens-down-the-hatches': [],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/671742/126-in-which-the-dark-lord-gets-hot-and-steamy': [],\n", + " 'https://www.royalroad.com/fiction/40182/only-villains-do-that/chapter/789911/225-in-which-the-dark-lord-comes-to-dinner': [],\n", + " 'https://www.royalroad.com/fiction/21188/forge-of-destiny': ['Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny',\n", + " 'Forge of Destiny'],\n", + " 'https://www.royalroad.com/fiction/67362/unintended-cultivator-a-xianxia-inspired-cultivation': ['Unintended Cultivator'],\n", + " 'https://www.royalroad.com/fiction/65765/transcending-dreams-litrpg-xianxia': ['Transcending Dreams'],\n", + " 'https://www.royalroad.com/fiction/68602/dao-of-the-web': ['Dao of the Web'],\n", + " 'https://www.royalroad.com/fiction/39069/spire-dweller': ['Spire Dweller'],\n", + " 'https://www.royalroad.com/fiction/25962/cultivating-earth': ['Cultivating Earth',\n", + " 'Cultivating Earth',\n", + " 'Cultivating Earth',\n", + " 'Cultivating Earth'],\n", + " 'https://www.royalroad.com/fiction/65919/a-sect-elders-journey-xianxia-isekai': [\"A Sect Elder's Journey\"],\n", + " 'https://www.goodreads.com/series/192821-cradle': ['Cradle series',\n", + " 'Cradle Series',\n", + " 'Cradle Series',\n", + " 'Cradle',\n", + " 'Cradle series',\n", + " 'Cradle series',\n", + " 'Cradle series',\n", + " 'Cradle Series',\n", + " 'Cradle',\n", + " 'Cradle series'],\n", + " 'https://www.reddit.com/r/noveltranslations/comments/ky80q5/rnoveltranslations_favourite_novels_2020_poll/': [],\n", + " 'https://www.royalroad.com/fiction/42441/elder-cultivator': ['Elder Cultivator',\n", + " 'Elder Cultivation'],\n", + " 'https://www.wuxiaworld.com/': ['Wuxia World'],\n", + " 'https://www.wuxiaworld.com/novel/rmji': [\"A Record of a Mortal's Journey to Immortality\",\n", + " \"Record of a Mortal's Journey to Immortality\",\n", + " \"Record of a Mortal's Journey to Immortality\",\n", + " \"Record of a Mortal's Journey to Immortality\"],\n", + " 'https://www.wuxiaworld.com/novel/divine-throne-of-primordial-blood': ['Divine Throne of Primordial Blood'],\n", + " 'https://novelusb.com/novel-book/a-will-eternal-novel': ['A Will Eternal'],\n", + " 'https://youtube.com/playlist?list=PLIIOUpOge0Ls9qzKr4sp4Kys3NPXxBZ-C': ['series on Clarketech'],\n", + " 'https://youtube.com/@GMTK': [\"The Game Maker's Toolkit\"],\n", + " 'https://www.flashforwardpod.com/': ['Flash Forward'],\n", + " 'http://www.infinityplus.co.uk/stories/colderwar.htm': ['A Colder War',\n", + " 'A Colder War',\n", + " '\"A Colder War\"',\n", + " 'A Colder War'],\n", + " 'https://www.royalroad.com/fiction/47557/underland': ['Underland'],\n", + " 'https://store.steampowered.com/app/274520/Darkwood/': ['Darkwood'],\n", + " 'https://www.royalroad.com/fiction/67803/calculating-cultivation': ['Calculating Cultivation'],\n", + " 'https://www.goodreads.com/series/306753-the-weirkey-chronicles': ['The Weirkey Chronicles'],\n", + " 'https://forums.spacebattles.com/threads/riley-alone-complete.1063889/': ['Riley Alone'],\n", + " 'https://forums.spacebattles.com/threads/desperate-times-call-for-desperate-pleasures.996028/': ['Desperate Times Call for Desperate Pleasures'],\n", + " 'https://www.royalroad.com/fiction/68969/the-secret-society-harry-potter-au': ['Secret Society'],\n", + " 'https://www.royalroad.com/fiction/46378/frameshift-magic-math-and-not-enough-context': ['Frameshift'],\n", + " 'https://www.fanfiction.net/s/13697675/1/Motion-Sickness-V2': ['Motion Sickness'],\n", + " 'https://kittyunpretty.com/astielle/': ['Astielle', 'Astielle'],\n", + " 'https://www.royalroad.com/fiction/21414/animecon-harem': ['AnimeCon Harem'],\n", + " 'https://postimg.cc/mhSPDNxJ': [],\n", + " 'https://www.royalroad.com/fiction/58682/fate-points': ['Fate Points'],\n", + " 'https://www.fanfiction.net/s/4203131/1/Reload': ['Reload',\n", + " 'Reload',\n", + " 'Reload by Case13 (Naruto)'],\n", + " 'https://www.fanfiction.net/s/4730390/1/Naruto-Genkyouien': ['Naruto Genkyoien',\n", + " 'Sayuri'],\n", + " 'https://www.fanfiction.net/s/3745099/1/People-Lie': ['People Lie',\n", + " 'People Lie',\n", + " 'People Lie',\n", + " 'People Lie',\n", + " 'People Lie'],\n", + " 'https://archiveofourown.org/works/15406896/chapters/35757684': ['Hear the Silence',\n", + " 'Hear the Sillence',\n", + " 'Hear the Silence',\n", + " 'Hear the Silence',\n", + " 'Hear the Silence'],\n", + " 'https://forums.sufficientvelocity.com/threads/crusader-kages-a-naruto-village-councilor-quest.111126/': ['Crusader Kages'],\n", + " 'https://archiveofourown.org/works/33406855/chapters/82980448': ['Wish Upon A Sin'],\n", + " 'https://www.fanfiction.net/s/4573620/1/A-Drop-of-Poison': ['A Drop of Poison',\n", + " 'A Drop of Poison',\n", + " 'A Drop of Poison',\n", + " 'Drop of Poison, A'],\n", + " 'https://www.fanfiction.net/s/6693171/1/The-Mouse-of-Konoha': ['The Mouse of Konoha'],\n", + " 'https://www.royalroad.com/fiction/49746/orochimama': ['Orochimama',\n", + " 'Orochimama',\n", + " 'Orochimama'],\n", + " 'https://redact.dev': [],\n", + " 'https://www.reddit.com/r/rational/comments/lvn6ow/gpt3_just_figured_out_the_entire_mystery_plot_of/': [],\n", + " 'https://www.reddit.com/r/rational/comments/11th4hs/comment/jcmx4zh/?utm_source=share&utm_medium=web2x&context=3': ['I tried to get it to complete the story'],\n", + " 'https://www.reddit.com/r/rational/comments/11th4hs/comment/jcoi2fg/?utm_source=share&utm_medium=web2x&context=3': [],\n", + " 'https://archiveofourown.org/works/5384075/chapters/12435455': ['Any Port in a Storm'],\n", + " 'https://www.fanfiction.net/s/10264082/1/': [\"What Doesn't Kill You\",\n", + " \"What Doesn't Kill You\"],\n", + " 'https://needtobecomestronger.wordpress.com/2016/10/12/the-need-to-become-stronger/': ['The Need to Become Stronger'],\n", + " 'https://www.fanfiction.net/s/8654967/1/Black-Cloaks-Red-Clouds': ['Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Of course.',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds',\n", + " 'Black Cloaks, Red Clouds'],\n", + " 'https://archiveofourown.org/works/7569610/chapters/17220808': ['How to Save the World With No One Even Realizing'],\n", + " 'https://archiveofourown.org/works/7726795/chapters/17611624': ['How to Survive the Weirdest Experience of Your Life'],\n", + " 'https://archiveofourown.org/works/7712350': ['How to Stop the End of the World (Maybe)'],\n", + " 'https://www.fanfiction.net/s/9250029/1/Shinobi-Team-7': ['Shinobi Team 7',\n", + " 'Shinobi: Team 7'],\n", + " 'https://www.fanfiction.net/s/8550403/1/THW': ['The Howling Wind',\n", + " 'The Howling Wind'],\n", + " 'https://www.fanfiction.net/s/5193644/1/Time-Braid': ['Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'ShaperV',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid',\n", + " 'Time Braid by ShaperV',\n", + " 'Time Braid',\n", + " 'Time Braid'],\n", + " 'https://www.fanfiction.net/s/5207262/1/Indomitable': ['Indomitable',\n", + " 'Indomitable',\n", + " 'Indomitable'],\n", + " 'https://www.fanfiction.net/s/10779196/1/Walk-on-the-Moon': ['Walk on the Moon',\n", + " 'Walk on the Moon',\n", + " 'Walk on the Moon',\n", + " 'Walk on the Moon',\n", + " 'Walk on Moon',\n", + " 'Walk on Moon-',\n", + " 'Walk on Moon-',\n", + " 'Walk on Moon-',\n", + " 'Walk on Moon-',\n", + " 'Walk on Moon-'],\n", + " 'https://www.fanfiction.net/s/13472966/1/Sasuke-Uchiha-and-the-Power-of-Lies': ['Sasuke Uchiha and the Power of Lies',\n", + " 'Sasuke and the Power of Lies'],\n", + " 'https://forums.sufficientvelocity.com/threads/shed-skin-a-naruto-time-travel-quest.27763/': ['Shed Skin'],\n", + " 'https://en.wikipedia.org/wiki/The_Metamorphosis_of_Prime_Intellect': ['Metamorphosis of Prime Intellect',\n", + " 'The Metamorphosis of Prime Intellect'],\n", + " 'https://www.royalroad.com/fiction/32807': ['Dark Skies.'],\n", + " 'https://www.imdb.com/title/tt4635282/': ['The OA', 'OA, The'],\n", + " 'https://www.youtube.com/watch?v=PIOnrEujKl8': [],\n", + " 'https://forums.spacebattles.com/threads/kill-them-all-worm-gamer.830187/': ['Kill Them All - Worm/Gamer',\n", + " 'Kill Them All - ShayneT (worm+others)',\n", + " 'Kill them all',\n", + " 'Kill Them All',\n", + " 'Kill Them All',\n", + " 'Kill Them All',\n", + " 'Kill Them All'],\n", + " 'https://m.fanfiction.net/s/8149841/1/Again-and-Again': [],\n", + " 'https://m.fanfiction.net/s/8175132/1/Jamie-Evans-and-Fate-s-Fool': [],\n", + " 'https://m.fanfiction.net/s/4068153/1/Harry-Potter-and-the-Wastelands-of-Time': ['Wastelands of Time',\n", + " 'The Wastelands of Time'],\n", + " 'https://m.fanfiction.net/s/8379655/1/Hogwarts-Battle-School': [],\n", + " 'https://m.fanfiction.net/s/11574569/1/Dodging-Prison-and-Stealing-Witches-Revenge-is-Best-Served-Raw': ['Dodging Prison and Stealing Witches'],\n", + " 'https://en.wikipedia.org/wiki/Grandmaster_of_Demonic_Cultivation': ['Mo Dao Zu Shi (Grandmaster of Demonic Cultivation)'],\n", + " 'https://en.wikipedia.org/wiki/Mo_Dao_Zu_Shi': [],\n", + " 'https://en.wikipedia.org/wiki/Crouching_Tiger,_Hidden_Dragon': ['Crouching Tiger, Hidden Dragon'],\n", + " 'https://en.wikipedia.org/wiki/Hero_(2002_film\\\\': ['Hero'],\n", + " 'https://en.wikipedia.org/wiki/Dragon_(2011_film\\\\': ['Wuxia'],\n", + " 'https://www.royalroad.com/fiction/68630/dark-lord-of-the-farmstead-a-slice-of-life-litrpg': ['Dark Lord of the Farmstead',\n", + " 'Dark Lord of the Farmstead'],\n", + " 'https://www.reddit.com/r/rational/comments/14ji4g8/d_monday_request_and_recommendation_thread/': [],\n", + " 'https://derinstories.com/2022/06/04/001-the-problem-with-the-javelin-program/': ['Time To Orbit: Unknown',\n", + " 'Time to Orbit: Unknown',\n", + " 'Time to orbit: Unknown',\n", + " 'Time to orbit: unknown'],\n", + " 'https://www.royalroad.com/fiction/65211/ex-nihilo-nihil-supernum-original-hard-scifi-with': ['I take scrupulous care to throw in every technological advance that makes sense haha'],\n", + " 'https://www.goodreads.com/series/168556-sunflower-cycle': ['Sunflower* series'],\n", + " 'https://forums.spacebattles.com/threads/sasuke-the-fanfiction.1097835/': ['SASUKE: The Fanfiction'],\n", + " 'https://www.royalroad.com/fiction/70234/blood-fur': ['Blood & Fur',\n", + " 'Blood & Fur',\n", + " 'Blood & Fur'],\n", + " 'https://www.novelupdates.com/series/reincarnator/': ['Reincarnator',\n", + " 'Reincarnator',\n", + " 'Reincarnator'],\n", + " 'https://www.fanfiction.net/s/12539731/1/Kaleidoscope': ['Kaleidoscope',\n", + " 'Kaleidoscope',\n", + " 'Kaleidoscope',\n", + " 'Kaleidoscope',\n", + " 'Kaleidoscope'],\n", + " 'https://www.fanfiction.net/s/8078340/1/Postnuptial-Disagreements': ['Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial disagreements',\n", + " 'Postnuptial Disagreements',\n", + " 'Postnuptial Disagreements'],\n", + " 'https://archiveofourown.org/works/38559063/chapters/96382032': ['The Bat Effect'],\n", + " 'https://archiveofourown.org/works/36234070/chapters/90325270': ['Falling Apart'],\n", + " 'https://archiveofourown.org/works/13518234/chapters/31007259': ['Known Associates'],\n", + " 'https://archiveofourown.org/works/13604148/chapters/31231287': ['Pick Your Poison'],\n", + " 'https://archiveofourown.org/works/30133737/chapters/74230590': ['Running Back the Tape, Watching it Replay'],\n", + " 'https://www.royalroad.com/fiction/52324/violent-solutions': ['Violent Solutions',\n", + " 'Violent Solutions',\n", + " 'Violent Solutions',\n", + " 'Violent solutions',\n", + " 'Violent Solutions',\n", + " 'Violent Solutions',\n", + " 'Violent Solutions',\n", + " 'Violent Solutions',\n", + " 'Violent Solutions'],\n", + " 'https://suptg.thisisnotatrueending.com/qstarchive.html?tags=House%20and%20Dominion': ['For House and Dominion'],\n", + " 'https://1d4chan.org/wiki/Tale_of_an_Industrious_Rogue,_Part_I': ['Tale of An Industrious Rogue',\n", + " 'Tale\\\\_of\\\\_an\\\\_Industrious\\\\_Rogue',\n", + " 'Industrious Rogue',\n", + " 'Tale of an Industrious Rogue',\n", + " 'Tale of an Industrious Rogue'],\n", + " 'https://www.reddit.com/r/HPfanfiction/comments/ai7q5k/does_for_the_love_of_magic_stop_with_all_the/': [],\n", + " 'https://www.reddit.com/r/HPfanfiction/comments/8vzvyk/for_love_of_magic_has_updated_and_harry_now_hates/': ['what I hear'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Literature/CitizenOfTheGalaxy': ['Citizen of the Galaxy'],\n", + " 'https://www.goodreads.com/series/80290': ['Астровитянка trilogy',\n", + " 'Астровитянка'],\n", + " 'https://en.wikipedia.org/wiki/First_Meetings#Investment_Counselor': ['Investment Counselor'],\n", + " 'https://www.fanfiction.net/s/10996503/1/Of-the-River-and-the-Sea': ['Of the River and the Sea',\n", + " 'Of the River and the Sea',\n", + " 'Of the River and the Sea',\n", + " 'Of The River And The Sea',\n", + " 'Of the River and the Sea',\n", + " 'Of the River and the Sea'],\n", + " 'https://archiveofourown.org/works/16970325/chapters/39885288': ['It Starts With One',\n", + " 'It Starts With One'],\n", + " 'https://old.reddit.com/r/rational/comments/12hjo5b/d_monday_request_and_recommendation_thread/jfpa0dc/': [],\n", + " 'https://forums.spacebattles.com/threads/high-tide-a-corlys-velaryon-si.860581/': ['High Tide (A Corlys Velaryon SI)'],\n", + " 'https://forums.spacebattles.com/threads/dread-our-wrath-asoiaf-si.870076/': ['Dread Our Wrath (ASOIAF SI)',\n", + " 'Dread Our Wrath',\n", + " 'Dread Our Wrath',\n", + " 'Dread Our Wrath',\n", + " 'Dread Our Wrath',\n", + " 'Dread our Wrath',\n", + " 'Dread Our Wrath',\n", + " 'Dread Our Wrath'],\n", + " 'https://glowfic.com/tags/1124?view=posts': ['glowfic set in Golarion'],\n", + " 'https://glowfic.com/characters/15729?view=posts': ['Iomedae, paladin of Aroden'],\n", + " 'https://forums.spacebattles.com/threads/godclads-a-godpunk-progression-science-fantasy-story.1048894/': ['Godclads',\n", + " 'Godclads',\n", + " 'Godclads'],\n", + " 'https://www.novelupdates.com/series/my-house-of-horrors/': ['My House of Horrors',\n", + " 'My House of Horrors'],\n", + " 'https://www.novelupdates.com/series/my-iyashikei-game/': ['My Iyashikei Game'],\n", + " 'https://www.royalroad.com/fiction/26675/a-journey-of-black-and-red': ['A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'Journey of Black and Red, A',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey Of Black And Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red',\n", + " 'A Journey of Black and Red'],\n", + " 'https://www.royalroad.com/fiction/51307/what-we-do-to-survive': ['What We Do to Survive',\n", + " 'What We Do to Survive',\n", + " 'What we do to survive',\n", + " 'What we do to survive'],\n", + " 'https://www.reddit.com/r/HFY/': [],\n", + " 'https://www.reddit.com/r/HFY/comments/13ovr80/faith_engines/': ['Faith Engines'],\n", + " 'https://www.royalroad.com/fiction/32411/bens-damn-adventure-the-prince-has-no-pants': [\"Ben's Damn Adventure: The Prince Has No Pants\",\n", + " \"Ben's Damn Adventure\",\n", + " \"Ben's Damn Adventure\"],\n", + " 'https://www.royalroad.com/fiction/32411/bens-damn-adventure-the-prince-has-no-pants/chapter/496763/youll-be-a-man-chapter-3': [],\n", + " 'https://forums.spacebattles.com/threads/advice-and-trust-nge.311196/': ['Advice and Trust'],\n", + " 'https://www.fanfiction.net/s/7154469/1/Fate-Far-Side': ['Fate Far Side',\n", + " 'Fate Far Side'],\n", + " 'https://progressandpoverty.substack.com/p/no-silver-bullets-to-the-werewolf': ['No Silver Bullet Solutions to the Werewolf Crisis'],\n", + " 'https://www.royalroad.com/fiction/49879/paranoid-mage': ['Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage',\n", + " 'Paranoid Mage'],\n", + " 'https://archiveofourown.org/works/7127255': ['Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto',\n", + " 'Contratto'],\n", + " 'https://www.royalroad.com/fiction/60140': ['Terminate the Other World!'],\n", + " 'https://www.royalroad.com/fiction/40290/demesne': ['Demesne',\n", + " 'Demesne',\n", + " 'Demesne',\n", + " 'Demesne',\n", + " 'Demesne',\n", + " 'Demense',\n", + " 'Demesne',\n", + " 'Demesne',\n", + " 'Demesne',\n", + " 'Demesne'],\n", + " 'https://forums.sufficientvelocity.com/threads/dust-in-the-gears-gearsofwar-rwby.101000/': ['Dust in the Gears'],\n", + " 'https://www.reddit.com/r/rational/comments/d6v9ty/any_good_suggestions_for_rational_kingdom/': [],\n", + " 'https://archiveofourown.org/works/47987518': ['Manifest'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/CruelToBeKind': ['Cruel to be kind'],\n", + " 'https://en.m.wikipedia.org/wiki/Bio_of_a_Space_Tyrant': ['Bio of a Space Tyrant',\n", + " 'Bio of a Space Tyrant'],\n", + " 'https://forums.spacebattles.com/threads/shoganai-an-ignoramus-si-in-naruto.1085793/#post-91761813': ['Shogunai'],\n", + " 'https://m.fanfiction.net/s/12431866/1/Sanitize#google_vignette': ['Sanitize'],\n", + " 'https://www.fanfiction.net/s/14106715/1/Fire-Away': ['Fire Away'],\n", + " 'https://www.royalroad.com/fiction/43693/owlnother-world': ['Owlnother World'],\n", + " 'https://www.royalroad.com/fiction/44024/misadventures-incorporated': ['Misadventures Incorporated'],\n", + " 'https://www.royalroad.com/fiction/36049/the-primal-hunter': ['Primal Hunter',\n", + " 'The Primal Hunter'],\n", + " 'https://www.royalroad.com/fiction/58068/annihilation-core': ['Annihilation Core',\n", + " 'Annihilation Core',\n", + " 'Annihilation Core'],\n", + " 'https://www.royalroad.com/fiction/69938/magic-is-programming': ['Magic is Programming'],\n", + " 'https://recordcrash.com/': [],\n", + " 'https://archiveofourown.org/works/8341348/chapters/19108573': [],\n", + " 'https://nostalgebraist.tumblr.com/post/48247840285/disappointedatgreatlengthstuck': [],\n", + " 'https://i.imgur.com/xZTt6Vk.png': ['Oh. Sigh...'],\n", + " 'https://i.imgur.com/9BNghlz.png': ['And_ I have to do this every 3 months??? Sending out emails is that fucking expensive, you have to cull the herd?'],\n", + " 'https://www.fanfiction.net/s/12431866/14/Sanitize': [],\n", + " 'https://imgur.com/Egry6HG': [],\n", + " 'https://www.royalroad.com/fiction/47340/master-this-poor-disciple-died-again-today': ['Master, This Poor Disciple Died Again Today',\n", + " 'Master, This Poor Disciple Died Again Today'],\n", + " 'https://forums.spacebattles.com/threads/pokewild-pokemon-isekai.1089666/': ['PokeWild'],\n", + " 'https://forums.spacebattles.com/threads/ships-counsel-tng-other-insert-au.745996/': [\"Ship's Council\"],\n", + " 'https://www.reddit.com/r/modguide/comments/i4bose/how_to_modmail/': [],\n", + " 'https://www.royalroad.com/fiction/71998/the-dao-of-simulation-sci-fi-xianxia-crackfic': ['The Dao of Simulation'],\n", + " 'https://en.m.wikipedia.org/wiki/Crew_resource_management': [],\n", + " 'https://www.youtube.com/watch?v=Q85l1Fenc5w': [\"Games That Don't Fake the Space\"],\n", + " 'https://www.youtube.com/watch?v=ntLc4hHWqHs': ['The conceptual failure of orbital lasers'],\n", + " 'https://www.youtube.com/watch?v=w2DP-A6FhA0': ['Unbearable Bright Realities'],\n", + " 'https://www.youtube.com/watch?v=DQQdnve5fQk': ['Judaism, Whiteness and Wolfenstein'],\n", + " 'https://www.royalroad.com/fiction/5817/nowhere-island-university': [],\n", + " 'https://forums.sufficientvelocity.com/threads/dungeon-keeper-ami-sailor-moon-dungeon-keeper-story-only-thread.30066/reader/': ['Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami'],\n", + " 'https://forums.spacebattles.com/threads/i-woke-up-as-a-dungeon-now-what-dungeon-worm.620521/reader/': ['I Woke Up As A Dungeon, Now What?'],\n", + " 'https://oniichanyamete.moe/index/evil-god-average/': ['Evil God Average'],\n", + " 'https://www.royalroad.com/fiction/37231/a-lonely-dungeon': ['A Lonely Dungeon',\n", + " 'A Lonely Dungeon',\n", + " 'A Lonely Dungeon',\n", + " 'A Lonely Dungeon',\n", + " 'A Lonely Dungeon',\n", + " 'A Lonely Dungeon'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Fanfic/DungeonKeeperAmi': ['DK Ami',\n", + " 'DK Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami',\n", + " 'Dungeon Keeper Ami'],\n", + " 'https://www.novelupdates.com/series/dungeon-hunter/': ['Dungeon Hunter',\n", + " 'Dungeon Hunter',\n", + " 'Dungeon Hunter'],\n", + " 'https://www.royalroad.com/fiction/24647/sin-eater': ['Sin-Eater'],\n", + " 'https://www.goodreads.com/en/book/show/22088245': ['NPCs'],\n", + " 'https://www.reddit.com/r/rational/comments/14dfgxx/d_monday_request_and_recommendation_thread/joxcsfb/?utm_source=share&utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=1&context=3': [],\n", + " 'https://old.reddit.com/r/rational/comments/1522sk0/d_monday_request_and_recommendation_thread/jsbz58a/': [],\n", + " 'https://en.wikipedia.org/wiki/Grendel_\\\\(novel\\\\': ['Grendel'],\n", + " 'https://edisciplinas.usp.br/pluginfile.php/3346220/mod_resource/content/1/ENDGAME%20BY%20SAMUEL%20BECKETT.pdf': ['Endgame'],\n", + " 'https://en.wikipedia.org/wiki/Arcadia_\\\\(play\\\\': ['Arcadia'],\n", + " 'https://www.reddit.com/r/rational/comments/91p1y8/started_reading_the_gods_are_bastards_initial/': [],\n", + " 'https://m.fanfiction.net/s/3886999/1/Shinji_and_Warhammer40k': ['Shinji and Warhammer 40,000',\n", + " 'Shinji and 40k'],\n", + " 'https://www.royalroad.com/fiction/21216/grand-design': ['Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design',\n", + " 'Grand Design'],\n", + " 'https://archiveofourown.org/works/28141665/chapters/68954355': ['On the Fringes'],\n", + " 'https://archiveofourown.org/works/41688777/chapters/104576295': ['Abandoned'],\n", + " 'https://archiveofourown.org/works/28167672/chapters/69020262': ['Underneath the Armor'],\n", + " 'https://archiveofourown.org/works/32838307/chapters/81485602': ['Happiest Place on Fur'],\n", + " 'https://archiveofourown.org/works/44144364/chapters/111005178': ['Foundations of Family'],\n", + " 'https://www.reddit.com/r/Romance_for_men/comments/157x79w/looking_for_stories_with_human_male_x_female/': [],\n", + " 'https://forums.spacebattles.com/threads/nineveh-worm.1073690/': ['Nineveh',\n", + " 'Nineveh'],\n", + " 'https://archiveofourown.org/works/44908171': ['The Pixie of the Hidden Leaf',\n", + " 'The Pixie of the Hidden Leaf'],\n", + " 'https://www.fanfiction.net/s/5166693/1/': [\"Scorpion's Disciple\"],\n", + " 'https://forums.sufficientvelocity.com/threads/skitterdoc-2077.109765/#post-25732717': ['Skitterdoc 2077'],\n", + " 'https://forums.spacebattles.com/threads/twisted-garden-pokemon-erika-au.1085469/#post-91722453': ['Twisted Garden'],\n", + " 'https://forums.spacebattles.com/threads/hive-queen-quest-by-quest-drone-archive-thread.721162/': ['Hive Queen Quest',\n", + " 'Hive Queen Quest'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/Literature/WorldWarZ': ['World War Z',\n", + " 'World War Z'],\n", + " 'https://old.reddit.com/r/rational/comments/4yvx3c/rt_a_rationalist_in_the_zombie_apocalypse/': [],\n", + " 'https://www.novelupdates.com/series/terror-infinity/': ['Terror Infinity',\n", + " 'Terror Infinity',\n", + " 'Terror Infinity',\n", + " 'Terror Infinity'],\n", + " 'https://tvtropes.org/pmwiki/pmwiki.php/VideoGame/NoMoreRoomInHell': ['No More Room In Hell'],\n", + " 'https://wiki.nomoreroominhell.com/Weapons#Firearms': [],\n", + " 'https://www.goodreads.com/series/63029-day-by-day-armageddon': ['Day by Day Armageddon'],\n", + " 'https://old.reddit.com/r/HPMOR/comments/8xu9kk/rational_zombie_apocalypse_stories/': [],\n", + " 'https://www.goodreads.com/series/78420-reapers': ['Reapers are the Angels, The'],\n", + " 'https://www.reddit.com/r/rational/comments/4yvx3c/rt_a_rationalist_in_the_zombie_apocalypse/?utm_source=share&utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=1': ['A Rationalist in the Zombie Apocalypse'],\n", + " 'https://www.royalroad.com/fiction/58916/the-hollowing-a-post-apocalyptic-adventure': ['The Hollowing a Post Apocalyptic Adventure'],\n", + " 'https://forums.sufficientvelocity.com/threads/skitterdoc-2077.109765/reader/': ['Skitterdoc',\n", + " 'Skitterdoc 2077'],\n", + " 'https://www.fanfiction.net/s/13338339/1/Compass-of-thy-Soul': ['Compass of Thy Soul',\n", + " 'Compass of thy soul'],\n", + " 'https://mangadex.org/title/8280b28c-aeff-4f89-ac99-a4c783e14782/enough-with-this-slow-life-i-was-reincarnated-as-a-high-elf-and-now-i-m-bored': [\"Enough with This Slow Life! I was Reincarnated as a High Elf and Now I'm Bored!\"],\n", + " 'https://www.fanfiction.net/s/13398050/1/Going-Native-Complete': ['Going Native',\n", + " 'Going Native'],\n", + " 'https://www.alternatehistory.com/forum/threads/hurry-up-living-or-hurry-up-dying-a-ww2-polish-si-story.467055/': ['Hurry up living or hurry up dying'],\n", + " 'https://www.alternatehistory.com/forum/threads/hurry-up-living-or-hurry-up-dying-volume-two.539733/': [],\n", + " 'https://www.reddit.com/r/rational/wiki/index/': [],\n", + " 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/John_Dee_und_Edward_Kelley_%E2%80%93_Totenbeschw%C3%B6rung.jpg/488px-John_Dee_und_Edward_Kelley_%E2%80%93_Totenbeschw%C3%B6rung.jpg': [],\n", + " 'https://www.novelupdates.com/series/i-shall-seal-the-heavens/': ['I Shall Seal the Heavens'],\n", + " 'https://www.novelupdates.com/series/renegade-immortal/': ['Renegade Immortal'],\n", + " 'https://www.novelupdates.com/series/a-will-eternal/': ['A Will Eternal'],\n", + " 'https://www.novelupdates.com/nauthor/mao-ni/': ['Mao Ni'],\n", + " 'https://www.novelupdates.com/series/the-path-toward-heaven/': ['The Path Toward Heaven',\n", + " 'The Path Toward Heaven'],\n", + " 'https://www.novelupdates.com/series/ze-tian-ji/': ['Way of Choices',\n", + " 'Way of Choices'],\n", + " 'https://www.novelupdates.com/series/joy-of-life/': ['Joy of Life',\n", + " 'Joy of Life'],\n", + " 'https://www.novelupdates.com/series/nightfall/': ['Nightfall',\n", + " 'Nightfall'],\n", + " 'https://www.novelupdates.com/series/once-upon-a-time-there-was-a-spirit-sword-mountain/': [],\n", + " 'https://www.novelupdates.com/series/tai-sui/': ['Tai Sui',\n", + " 'Tai Sui'],\n", + " 'https://www.novelupdates.com/series/the-sword-dynasty/': ['The Sword Dynasty',\n", + " 'The Sword Dynasty'],\n", + " 'https://www.royalroad.com/fiction/36597/when-immortal-ascension-fails-time-travel-to-try': ['When Immortal Ascension Fails Time Travel to Try Again',\n", + " 'When Immortal Ascension Fails Time Travel to Try Again',\n", + " 'When Immortal Ascension Fails...'],\n", + " 'https://www.royalroad.com/fiction/68999/reach-heaven-via-feng-shui-engineering': ['Reach Heaven Via Feng Shui Engineering, Drug Trade And Tax Evasion'],\n", + " 'https://forums.spacebattles.com/threads/worm-xianxia-sect.989803/': ['Sect',\n", + " 'Sect',\n", + " 'Sects',\n", + " 'Sect',\n", + " 'Sect',\n", + " 'Sect',\n", + " 'Worm / Cultivation crossover'],\n", + " 'https://archiveofourown.org/works/37616470': ['Cockatiel x Chameleon'],\n", + " 'https://recordcrash.substack.com/p/book-review-cockatiel-x-chameleon': ['reviewed Cockatiel x Chameleon'],\n", + " 'https://archiveofourown.org/works/24608248/chapters/59445880': ['An Eagle Among Lions'],\n", + " 'https://www.youtube.com/watch?v=ZsqUCI2_63A': ['YouTube | The Forever War Sci Fi Audiobook by Joe Haldeman'],\n", + " 'https://capybasilisk.com/posts/2020/04/speculative-fiction-bot/': [],\n", + " 'https://www.reddit.com/message/compose?to=Capybasilisk&subject=Robot': [],\n", + " 'https://www.reddit.com/u/capybasilisk': [],\n", + " 'https://glowfic.com/posts/7263': [],\n", + " 'https://www.glowfic.com/posts/7250': [],\n", + " 'https://www.glowfic.com/templates/2972': ['Marrian/Merrin glowfics'],\n", + " 'https://www.glowfic.com/posts/4497': ['a patient who is a wizard from Valdemar'],\n", + " 'https://www.glowfic.com/posts/4520': [],\n", + " ...})" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "titles_md" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# def get_title_md(url):\n", + "# t = titles_md.get(url, [])\n", + "# if t:\n", + "# s = pd.Series(t)\n", + "# return s.value_counts().index[0] # return most common title\n", + "# return url\n", + "# get_title_md('https://parahumans.wordpress.com/')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Time Braid 93\n", "Mother of Learning 66\n", + "Worm 66\n", "Worth the Candle 64\n", - "With This Ring 37\n", - "Marked for Death 34\n", + "Twig 58\n", + "Statistics 52\n", + "Problems/Bugs? 52\n", + "Stop Replying 52\n", + "Pact 36\n", + "With This Ring 36\n", "The Waves Arisen 34\n", + "Marked for Death 34\n", "The Metropolitan Man 33\n", + "Luminosity 32\n", "What is this? 32\n", + "Pale 31\n", "A Hero's War 30\n", + "Unsong 30\n", "Friendship is Optimal 30\n", "Dungeon Keeper Ami 29\n", "A Practical Guide to Evil 28\n", @@ -208,44 +2976,35 @@ "A Young Woman's Political Record 26\n", "Harry Potter and the Natural 20 26\n", "Purple Days 25\n", - "The Last Angel 25\n", "Branches on the Tree of Time 25\n", + "The Last Angel 25\n", + "Cordyceps 25\n", + "Delve 25\n", "Super Minion 24\n", "Forge of Destiny 24\n", "The Wandering Inn 23\n", "The Fall of Doc Future 23\n", "Hard Reset 22\n", - "The Games We Play 22\n", - "Shadows of the Limelight 22\n", "The Erogamer 22\n", - "More Books 20\n", + "The Games We Play 22\n", + "Sanitize 22\n", + "Shadows of the Limelight 21\n", "Harry Potter and the Methods of Rationality 20\n", + "More Books 20\n", + "Ward 20\n", + "Blindsight 19\n", "Lord of the Mysteries 19\n", + "Symbiote 18\n", + "Only Villains Do That 18\n", "Fairy Dance of Death 18\n", "The Daily Grind 18\n", - "Only Villains Do That 18\n", "Dungeon Crawler Carl 18\n", + "Mobile 18\n", "Fine Structure 18\n", - "The Two Year Emperor 17\n", - "A Bad Name 17\n", - "Hard Reset 2: Reset Harder 17\n", - "Animorphs: The Reckoning 16\n", - "The Gods are Bastards 16\n", - "Transdimensional Brain Chip 16\n", - "Dreaming of Sunshine 16\n", - "To the Stars 16\n", - "A Journey of Black and Red 15\n", - "Chunin Exam Day 15\n", - "Significant Digits 15\n", - "The Gods Are Bastards 15\n", - "Crystal Society 15\n", - "Post Human 15\n", - "Metropolitan Man 15\n", - "Strong Female Protagonist 14\n", "Name: count, dtype: int64" ] }, - "execution_count": 4, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -274,13 +3033,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ffa3d559f6174a6d963af58b952f82bf", + "model_id": "bb74a2203029467da648f13aab0ace55", "version_major": 2, "version_minor": 0 }, @@ -295,7 +3054,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "46353 unique links found\n" + "46353 links found\n" ] } ], @@ -324,64 +3083,32 @@ "\n", "data = []\n", "for f in tqdm(fs):\n", - " s = json.loads(f.open().read())\n", + " post = json.loads(f.open().read())\n", + " thread_url = \"https://reddit.com\" + post[\"permalink\"]\n", + " thread_created = post[\"created_utc\"]\n", "\n", - " for comment in s[\"comments\"]:\n", + " for comment in post[\"comments\"]:\n", " text = comment[\"body\"]\n", " links = extract_links_re(text)\n", - " for l in links:\n", + " for link in links:\n", " data.append(\n", " dict(\n", - " url=l,\n", - " score_mean=comment[\"score\"],\n", - " created_utc=s[\"created_utc\"],\n", - " comment_url=\"https://reddit.com\" + comment[\"permalink\"],\n", - " comment=comment[\"body\"],\n", - " thread_url=stem_url(comment[\"permalink\"]),\n", + " url=link,\n", + " score=comment[\"score\"],\n", + " # created_utc=post[\"created_utc\"],\n", + " # comment_url=\"https://reddit.com\" + comment[\"permalink\"],\n", + " # comment_body=comment[\"body\"],\n", + " comment=comment,\n", + " thread_url=thread_url,\n", " )\n", " )\n", "\n", - " # karma[l] += comment['score'] / len(links)\n", - " # gossip[l].append(comment['body'])\n", - " # gossip_threads[l].append('https://reddit.com' + comment['permalink'])\n", - " # dates[l].append(s['created_utc'])\n", - " # data += links\n", - "\n", - "print(f\"{len(data)} unique links found\")" + "print(f\"{len(data)} links found\")" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "url\n", - "https://github.com/trambelus/UserSim 231\n", - "/r/User_Simulator 230\n", - "/sp 219\n", - "#sfw 164\n", - "#or 164\n", - "http://www.np.reddit.com/r/autowikibot/wiki/index 126\n", - "http://www.np.reddit.com/r/autowikibot/comments/1x013o/for_moderators_switches_commands_and_css/ 126\n", - "http://www.np.reddit.com/r/autowikibot/comments/1ux484/ask_wikibot/ 126\n", - "http://topwebfiction.com/vote.php?for=a-practical-guide-to-evil 104\n", - "https://redact.dev/home 79\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -405,59 +3132,75 @@ " \n", " \n", " \n", + " score\n", + " n_links\n", + " comments\n", + " thread_urls\n", + " n_comments\n", + " first_link_utc\n", + " last_link_utc\n", + " \n", + " \n", " url\n", - " score_mean\n", - " created_utc\n", - " comment_url\n", - " comment\n", - " thread_url\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " 0\n", - " https://readcomiconline.li/Comic/Squarriors-2014\n", - " 3\n", - " 1970-01-01 00:00:01.672671609\n", - " https://reddit.com/r/rational/comments/101em0c...\n", - " Thanks for the recs. You've linked to the seco...\n", - " /r/rational/comments/101em0c/d_monday_request_...\n", + " https://www.patreon.com/alexanderwales\n", + " 1408\n", + " 22\n", + " [{'id': 'cqgom57', 'created_utc': 1429380827.0...\n", + " [https://reddit.com/r/rational/comments/mtlce4...\n", + " 22\n", + " 2015-04-18 18:13:47\n", + " 2021-04-29 20:00:04\n", " \n", " \n", - " 1\n", - " https://readcomiconline.li/Comic/Alt-Life\n", - " 27\n", - " 1970-01-01 00:00:01.672671609\n", - " https://reddit.com/r/rational/comments/101em0c...\n", - " I've been reading a lot of comics lately. The ...\n", - " /r/rational/comments/101em0c/d_monday_request_...\n", + " https://archiveofourown.org/works/11478249/chapters/25740126\n", + " 794\n", + " 63\n", + " [{'id': 'dluq8vo', 'created_utc': 1503171093.0...\n", + " [https://reddit.com/r/rational/comments/dwrzbr...\n", + " 63\n", + " 2017-08-19 19:31:33\n", + " 2024-04-17 19:03:01\n", " \n", " \n", - " 2\n", - " https://readcomiconline.li/Comic/Pride-of-Baghdad\n", - " 27\n", - " 1970-01-01 00:00:01.672671609\n", - " https://reddit.com/r/rational/comments/101em0c...\n", - " I've been reading a lot of comics lately. The ...\n", - " /r/rational/comments/101em0c/d_monday_request_...\n", + " https://www.fanfiction.net/s/10360716/1/The-Metropolitan-Man\n", + " 663\n", + " 55\n", + " [{'id': 'chvfe2o', 'created_utc': 1401507549.0...\n", + " [https://reddit.com/r/rational/comments/134n9q...\n", + " 55\n", + " 2014-05-31 03:39:09\n", + " 2023-06-26 19:21:24\n", " \n", " \n", - " 3\n", - " https://readcomiconline.li/Comic/%C3%86ther-Em...\n", - " 27\n", - " 1970-01-01 00:00:01.672671609\n", - " https://reddit.com/r/rational/comments/101em0c...\n", - " I've been reading a lot of comics lately. The ...\n", - " /r/rational/comments/101em0c/d_monday_request_...\n", + " https://discord.gg/sM99CF3\n", + " 646\n", + " 60\n", + " [{'id': 'd88ddo9', 'created_utc': 1475248463.0...\n", + " [https://reddit.com/r/rational/comments/7k08ef...\n", + " 60\n", + " 2016-09-30 15:14:23\n", + " 2018-08-10 17:12:02\n", " \n", " \n", - " 4\n", - " https://readcomiconline.li/Comic/Guinea-Pigs\n", - " 27\n", - " 1970-01-01 00:00:01.672671609\n", - " https://reddit.com/r/rational/comments/101em0c...\n", - " I've been reading a lot of comics lately. The ...\n", - " /r/rational/comments/101em0c/d_monday_request_...\n", + " https://docs.google.com/document/d/1EUSMDHdRdbvQJii5uoSezbjtvJpxdF6Da8zqvuW42bg/edit?usp=sharing\n", + " 627\n", + " 58\n", + " [{'id': 'd80h9fe', 'score': 4, 'body': 'So a w...\n", + " [https://reddit.com/r/rational/comments/7k08ef...\n", + " 58\n", + " 2016-09-24 19:53:40\n", + " 2018-08-10 17:12:02\n", " \n", " \n", " ...\n", @@ -467,146 +3210,207 @@ " ...\n", " ...\n", " ...\n", + " ...\n", " \n", " \n", - " 46348\n", - " https://questionablequesting.com/threads/with-...\n", - " 52\n", - " 1970-01-01 00:00:01.672066808\n", - " https://reddit.com/r/rational/comments/zvov5c/...\n", - " I thought I would post a \"My favourite reads f...\n", - " /r/rational/comments/zvov5c/d_monday_request_a...\n", + " https://www.reddit.com/r/rational/comments/ix25dk/d_monday_request_and_recommendation_thread/g64soul/\n", + " -9\n", + " 1\n", + " [{'id': 'g65db9r', 'created_utc': 1600722605.0...\n", + " [https://reddit.com/r/rational/comments/ix25dk...\n", + " 1\n", + " 2020-09-21 21:10:05\n", + " 2020-09-21 21:10:05\n", " \n", " \n", - " 46349\n", - " https://www.royalroad.com/fiction/40373/vigor-...\n", - " 52\n", - " 1970-01-01 00:00:01.672066808\n", - " https://reddit.com/r/rational/comments/zvov5c/...\n", - " I thought I would post a \"My favourite reads f...\n", - " /r/rational/comments/zvov5c/d_monday_request_a...\n", + " https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20e68m7xq\n", + " -10\n", + " 1\n", + " [{'id': 'e68m7xq', 'score': -10, 'body': 'It s...\n", + " [https://reddit.com/r/rational/comments/9h1454...\n", + " 1\n", + " 2018-09-19 04:51:09\n", + " 2018-09-19 04:51:09\n", " \n", " \n", - " 46350\n", - " https://forums.spacebattles.com/threads/dark-l...\n", - " 52\n", - " 1970-01-01 00:00:01.672066808\n", - " https://reddit.com/r/rational/comments/zvov5c/...\n", - " I thought I would post a \"My favourite reads f...\n", - " /r/rational/comments/zvov5c/d_monday_request_a...\n", + " https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20dxgv0pj\n", + " -11\n", + " 1\n", + " [{'id': 'dxgv0pj', 'created_utc': 1523905663.0...\n", + " [https://reddit.com/r/rational/comments/8cppyk...\n", + " 1\n", + " 2018-04-16 19:07:43\n", + " 2018-04-16 19:07:43\n", " \n", " \n", - " 46351\n", - " https://forums.spacebattles.com/threads/legend...\n", - " 5\n", - " 1970-01-01 00:00:01.672066808\n", - " https://reddit.com/r/rational/comments/zvov5c/...\n", - " I read [Legends never die ](https://forums.spa...\n", - " /r/rational/comments/zvov5c/d_monday_request_a...\n", + " https://snewd.com/ebooks/leviathan/\n", + " -15\n", + " 1\n", + " [{'id': 'gl1vde4', 'created_utc': 1611810163.0...\n", + " [https://reddit.com/r/rational/comments/l6ki69...\n", + " 1\n", + " 2021-01-28 05:02:43\n", + " 2021-01-28 05:02:43\n", " \n", " \n", - " 46352\n", - " https://tvtropes.org/pmwiki/pmwiki.php/WhatAnI...\n", - " 4\n", - " 1970-01-01 00:00:01.672066808\n", - " https://reddit.com/r/rational/comments/zvov5c/...\n", - " Any examples of fiction (preferably rational a...\n", - " /r/rational/comments/zvov5c/d_monday_request_a...\n", + " https://knowyourmeme.com/memes/absolutely-disgusting\n", + " -17\n", + " 1\n", + " [{'id': 'esqmm0i', 'created_utc': 1562205524.0...\n", + " [https://reddit.com/r/rational/comments/c8w3xe...\n", + " 1\n", + " 2019-07-04 01:58:44\n", + " 2019-07-04 01:58:44\n", " \n", " \n", "\n", - "

46353 rows × 6 columns

\n", + "

33292 rows × 7 columns

\n", "" ], "text/plain": [ - " url score_mean \\\n", - "0 https://readcomiconline.li/Comic/Squarriors-2014 3 \n", - "1 https://readcomiconline.li/Comic/Alt-Life 27 \n", - "2 https://readcomiconline.li/Comic/Pride-of-Baghdad 27 \n", - "3 https://readcomiconline.li/Comic/%C3%86ther-Em... 27 \n", - "4 https://readcomiconline.li/Comic/Guinea-Pigs 27 \n", - "... ... ... \n", - "46348 https://questionablequesting.com/threads/with-... 52 \n", - "46349 https://www.royalroad.com/fiction/40373/vigor-... 52 \n", - "46350 https://forums.spacebattles.com/threads/dark-l... 52 \n", - "46351 https://forums.spacebattles.com/threads/legend... 5 \n", - "46352 https://tvtropes.org/pmwiki/pmwiki.php/WhatAnI... 4 \n", + " score n_links \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 1408 22 \n", + "https://archiveofourown.org/works/11478249/chap... 794 63 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 663 55 \n", + "https://discord.gg/sM99CF3 646 60 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 627 58 \n", + "... ... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... -9 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... -10 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... -11 1 \n", + "https://snewd.com/ebooks/leviathan/ -15 1 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... -17 1 \n", "\n", - " created_utc \\\n", - "0 1970-01-01 00:00:01.672671609 \n", - "1 1970-01-01 00:00:01.672671609 \n", - "2 1970-01-01 00:00:01.672671609 \n", - "3 1970-01-01 00:00:01.672671609 \n", - "4 1970-01-01 00:00:01.672671609 \n", - "... ... \n", - "46348 1970-01-01 00:00:01.672066808 \n", - "46349 1970-01-01 00:00:01.672066808 \n", - "46350 1970-01-01 00:00:01.672066808 \n", - "46351 1970-01-01 00:00:01.672066808 \n", - "46352 1970-01-01 00:00:01.672066808 \n", + " comments \\\n", + "url \n", + "https://www.patreon.com/alexanderwales [{'id': 'cqgom57', 'created_utc': 1429380827.0... \n", + "https://archiveofourown.org/works/11478249/chap... [{'id': 'dluq8vo', 'created_utc': 1503171093.0... \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... [{'id': 'chvfe2o', 'created_utc': 1401507549.0... \n", + "https://discord.gg/sM99CF3 [{'id': 'd88ddo9', 'created_utc': 1475248463.0... \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... [{'id': 'd80h9fe', 'score': 4, 'body': 'So a w... \n", + "... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... [{'id': 'g65db9r', 'created_utc': 1600722605.0... \n", + "https://reddit.com/message/compose/?to=FatFinge... [{'id': 'e68m7xq', 'score': -10, 'body': 'It s... \n", + "https://reddit.com/message/compose/?to=FatFinge... [{'id': 'dxgv0pj', 'created_utc': 1523905663.0... \n", + "https://snewd.com/ebooks/leviathan/ [{'id': 'gl1vde4', 'created_utc': 1611810163.0... \n", + "https://knowyourmeme.com/memes/absolutely-disgu... [{'id': 'esqmm0i', 'created_utc': 1562205524.0... \n", "\n", - " comment_url \\\n", - "0 https://reddit.com/r/rational/comments/101em0c... \n", - "1 https://reddit.com/r/rational/comments/101em0c... \n", - "2 https://reddit.com/r/rational/comments/101em0c... \n", - "3 https://reddit.com/r/rational/comments/101em0c... \n", - "4 https://reddit.com/r/rational/comments/101em0c... \n", - "... ... \n", - "46348 https://reddit.com/r/rational/comments/zvov5c/... \n", - "46349 https://reddit.com/r/rational/comments/zvov5c/... \n", - "46350 https://reddit.com/r/rational/comments/zvov5c/... \n", - "46351 https://reddit.com/r/rational/comments/zvov5c/... \n", - "46352 https://reddit.com/r/rational/comments/zvov5c/... \n", + " thread_urls \\\n", + "url \n", + "https://www.patreon.com/alexanderwales [https://reddit.com/r/rational/comments/mtlce4... \n", + "https://archiveofourown.org/works/11478249/chap... [https://reddit.com/r/rational/comments/dwrzbr... \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... [https://reddit.com/r/rational/comments/134n9q... \n", + "https://discord.gg/sM99CF3 [https://reddit.com/r/rational/comments/7k08ef... \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... [https://reddit.com/r/rational/comments/7k08ef... \n", + "... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... [https://reddit.com/r/rational/comments/ix25dk... \n", + "https://reddit.com/message/compose/?to=FatFinge... [https://reddit.com/r/rational/comments/9h1454... \n", + "https://reddit.com/message/compose/?to=FatFinge... [https://reddit.com/r/rational/comments/8cppyk... \n", + "https://snewd.com/ebooks/leviathan/ [https://reddit.com/r/rational/comments/l6ki69... \n", + "https://knowyourmeme.com/memes/absolutely-disgu... [https://reddit.com/r/rational/comments/c8w3xe... \n", "\n", - " comment \\\n", - "0 Thanks for the recs. You've linked to the seco... \n", - "1 I've been reading a lot of comics lately. The ... \n", - "2 I've been reading a lot of comics lately. The ... \n", - "3 I've been reading a lot of comics lately. The ... \n", - "4 I've been reading a lot of comics lately. The ... \n", - "... ... \n", - "46348 I thought I would post a \"My favourite reads f... \n", - "46349 I thought I would post a \"My favourite reads f... \n", - "46350 I thought I would post a \"My favourite reads f... \n", - "46351 I read [Legends never die ](https://forums.spa... \n", - "46352 Any examples of fiction (preferably rational a... \n", + " n_comments \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 22 \n", + "https://archiveofourown.org/works/11478249/chap... 63 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 55 \n", + "https://discord.gg/sM99CF3 60 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 58 \n", + "... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... 1 \n", + "https://snewd.com/ebooks/leviathan/ 1 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 1 \n", "\n", - " thread_url \n", - "0 /r/rational/comments/101em0c/d_monday_request_... \n", - "1 /r/rational/comments/101em0c/d_monday_request_... \n", - "2 /r/rational/comments/101em0c/d_monday_request_... \n", - "3 /r/rational/comments/101em0c/d_monday_request_... \n", - "4 /r/rational/comments/101em0c/d_monday_request_... \n", - "... ... \n", - "46348 /r/rational/comments/zvov5c/d_monday_request_a... \n", - "46349 /r/rational/comments/zvov5c/d_monday_request_a... \n", - "46350 /r/rational/comments/zvov5c/d_monday_request_a... \n", - "46351 /r/rational/comments/zvov5c/d_monday_request_a... \n", - "46352 /r/rational/comments/zvov5c/d_monday_request_a... \n", + " first_link_utc \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 2015-04-18 18:13:47 \n", + "https://archiveofourown.org/works/11478249/chap... 2017-08-19 19:31:33 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 2014-05-31 03:39:09 \n", + "https://discord.gg/sM99CF3 2016-09-30 15:14:23 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 2016-09-24 19:53:40 \n", + "... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... 2020-09-21 21:10:05 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-09-19 04:51:09 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-04-16 19:07:43 \n", + "https://snewd.com/ebooks/leviathan/ 2021-01-28 05:02:43 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 2019-07-04 01:58:44 \n", "\n", - "[46353 rows x 6 columns]" + " last_link_utc \n", + "url \n", + "https://www.patreon.com/alexanderwales 2021-04-29 20:00:04 \n", + "https://archiveofourown.org/works/11478249/chap... 2024-04-17 19:03:01 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 2023-06-26 19:21:24 \n", + "https://discord.gg/sM99CF3 2018-08-10 17:12:02 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 2018-08-10 17:12:02 \n", + "... ... \n", + "https://www.reddit.com/r/rational/comments/ix25... 2020-09-21 21:10:05 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-09-19 04:51:09 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-04-16 19:07:43 \n", + "https://snewd.com/ebooks/leviathan/ 2021-01-28 05:02:43 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 2019-07-04 01:58:44 \n", + "\n", + "[33292 rows x 7 columns]" ] }, - "execution_count": 15, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_links = pd.DataFrame(data)\n", + "df_links1 = pd.DataFrame(data)\n", "# check for dups\n", "# print(df_links['url'].value_counts().head(10))\n", "\n", - "df_links[\"created_utc\"] = pd.to_datetime(df_links[\"created_utc\"])\n", - "df_links" + "# df_links1[\"created_utc\"] = pd.to_datetime(df_links1[\"created_utc\"], unit=\"s\")\n", + "\n", + "\n", + "def join_uniq_list(x: list) -> list:\n", + " return list(set(x))\n", + "\n", + "# def joun_uniq_comment(comments: list) -> list:\n", + "# d = {x['permalink']: x for x in comments}\n", + "# return list(d.values())\n", + "\n", + "\n", + "df_links2 = df_links1.groupby(\"url\").agg(\n", + " score=(\"score\", \"sum\"),\n", + " n_links=(\"score\", \"count\"),\n", + " comments=(\"comment\", list),\n", + " thread_urls=(\"thread_url\", join_uniq_list),\n", + ").sort_values(\"score\", ascending=False)\n", + "\n", + "# order comments by date\n", + "df_links2[\"comments\"] = df_links2[\"comments\"].apply(\n", + " lambda x: sorted(x, key=lambda y: y[\"created_utc\"])\n", + ")\n", + "\n", + "# now add come things like first and last comment time\n", + "df_links2['n_comments'] = df_links2['comments'].apply(len)\n", + "df_links2['first_link_utc'] = pd.to_datetime(df_links2['comments'].apply(lambda x: min([y['created_utc'] for y in x])), unit='s')\n", + "df_links2['last_link_utc'] = pd.to_datetime(df_links2['comments'].apply(lambda x: max([y['created_utc'] for y in x])), unit='s')\n", + "df_links2" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "33292 unique links found\n" + ] + } + ], + "source": [ + "print(f\"{len(df_links2)} unique links found\")" + ] }, { "cell_type": "markdown", @@ -617,29 +3421,273 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "46353 before blocklist\n" + "33292 links before blocklist\n", + "21635 links after blocklist\n", + "17914 links after rm suffixes\n", + "17888 links after rm bot\n" ] }, { - "ename": "AttributeError", - "evalue": "Can only use .str accessor with string values!", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[17], line 45\u001b[0m\n\u001b[1;32m 41\u001b[0m link_allowlist \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhfy\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(df_links)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m before blocklist\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 44\u001b[0m df_links \u001b[38;5;241m=\u001b[39m df_links[\n\u001b[0;32m---> 45\u001b[0m \u001b[38;5;241m~\u001b[39m\u001b[43mdf_links\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstr\u001b[49m\u001b[38;5;241m.\u001b[39mcontains(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m|\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(link_blocklist), regex\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 46\u001b[0m \u001b[38;5;241m|\u001b[39m df_links\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mstr\u001b[38;5;241m.\u001b[39mcontains(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m|\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(link_allowlist), regex\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 47\u001b[0m ]\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(df_links)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m after blocklist\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 49\u001b[0m df_links \u001b[38;5;241m=\u001b[39m df_links[df_links\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mstr\u001b[38;5;241m.\u001b[39mstartswith(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttp\u001b[39m\u001b[38;5;124m\"\u001b[39m)]\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/rrational/.venv/lib/python3.10/site-packages/pandas/core/accessor.py:224\u001b[0m, in \u001b[0;36mCachedAccessor.__get__\u001b[0;34m(self, obj, cls)\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m obj \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 222\u001b[0m \u001b[38;5;66;03m# we're accessing the attribute of the class, i.e., Dataset.geo\u001b[39;00m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_accessor\n\u001b[0;32m--> 224\u001b[0m accessor_obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_accessor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 225\u001b[0m \u001b[38;5;66;03m# Replace the property with the accessor object. Inspired by:\u001b[39;00m\n\u001b[1;32m 226\u001b[0m \u001b[38;5;66;03m# https://www.pydanny.com/cached-property.html\u001b[39;00m\n\u001b[1;32m 227\u001b[0m \u001b[38;5;66;03m# We need to use object.__setattr__ because we overwrite __setattr__ on\u001b[39;00m\n\u001b[1;32m 228\u001b[0m \u001b[38;5;66;03m# NDFrame\u001b[39;00m\n\u001b[1;32m 229\u001b[0m \u001b[38;5;28mobject\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__setattr__\u001b[39m(obj, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_name, accessor_obj)\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/rrational/.venv/lib/python3.10/site-packages/pandas/core/strings/accessor.py:191\u001b[0m, in \u001b[0;36mStringMethods.__init__\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, data) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 189\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marrays\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstring_\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m StringDtype\n\u001b[0;32m--> 191\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_inferred_dtype \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 192\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_categorical \u001b[38;5;241m=\u001b[39m \u001b[38;5;28misinstance\u001b[39m(data\u001b[38;5;241m.\u001b[39mdtype, CategoricalDtype)\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_string \u001b[38;5;241m=\u001b[39m \u001b[38;5;28misinstance\u001b[39m(data\u001b[38;5;241m.\u001b[39mdtype, StringDtype)\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/rrational/.venv/lib/python3.10/site-packages/pandas/core/strings/accessor.py:245\u001b[0m, in \u001b[0;36mStringMethods._validate\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 242\u001b[0m inferred_dtype \u001b[38;5;241m=\u001b[39m lib\u001b[38;5;241m.\u001b[39minfer_dtype(values, skipna\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inferred_dtype \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m allowed_types:\n\u001b[0;32m--> 245\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCan only use .str accessor with string values!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 246\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m inferred_dtype\n", - "\u001b[0;31mAttributeError\u001b[0m: Can only use .str accessor with string values!" - ] + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
scoren_linkscommentsthread_urlsn_commentsfirst_link_utclast_link_utc
url
https://www.patreon.com/alexanderwales140822[{'id': 'cqgom57', 'created_utc': 1429380827.0...[https://reddit.com/r/rational/comments/mtlce4...222015-04-18 18:13:472021-04-29 20:00:04
https://archiveofourown.org/works/11478249/chapters/2574012679463[{'id': 'dluq8vo', 'created_utc': 1503171093.0...[https://reddit.com/r/rational/comments/dwrzbr...632017-08-19 19:31:332024-04-17 19:03:01
https://www.fanfiction.net/s/10360716/1/The-Metropolitan-Man66355[{'id': 'chvfe2o', 'created_utc': 1401507549.0...[https://reddit.com/r/rational/comments/134n9q...552014-05-31 03:39:092023-06-26 19:21:24
https://www.fictionpress.com/s/2961893/1/Mother-of-Learning54960[{'id': 'cj87tis', 'created_utc': 1406362872.0...[https://reddit.com/r/rational/comments/j9fac4...602014-07-26 08:21:122021-03-15 18:12:29
https://twigserial.wordpress.com/43948[{'id': 'cy39n9f', 'score': 11, 'body': 'Outsi...[https://reddit.com/r/rational/comments/f1rj3l...482015-12-18 10:22:592024-09-11 20:51:31
........................
https://www.merriam-webster.com/dictionary/not%20nearly-61[{'id': 'gfaoohc', 'created_utc': 1607618149.0...[https://reddit.com/r/rational/comments/kaat79...12020-12-10 16:35:492020-12-10 16:35:49
https://wiki.lesswrong.com/wiki/Orthogonality_thesis-82[{'id': 'cxn65fy', 'score': 0, 'body': 'I don'...[https://reddit.com/r/rational/comments/3vc0si...22015-12-04 18:17:072016-07-11 16:27:30
https://news.harvard.edu/gazette/story/2018/11/when-starting-school-younger-children-are-more-likely-to-be-diagnosed-with-adhd-study-says/-91[{'id': 'easqwb3', 'created_utc': 1543598269.0...[https://reddit.com/r/rational/comments/a1t6um...12018-11-30 17:17:492018-11-30 17:17:49
https://sciencetrends.com/is-there-a-replicability-crisis-in-psychology-new-study-says-its-complicated/-91[{'id': 'easqwb3', 'created_utc': 1543598269.0...[https://reddit.com/r/rational/comments/a1t6um...12018-11-30 17:17:492018-11-30 17:17:49
https://snewd.com/ebooks/leviathan/-151[{'id': 'gl1vde4', 'created_utc': 1611810163.0...[https://reddit.com/r/rational/comments/l6ki69...12021-01-28 05:02:432021-01-28 05:02:43
\n", + "

17888 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " score n_links \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 1408 22 \n", + "https://archiveofourown.org/works/11478249/chap... 794 63 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 663 55 \n", + "https://www.fictionpress.com/s/2961893/1/Mother... 549 60 \n", + "https://twigserial.wordpress.com/ 439 48 \n", + "... ... ... \n", + "https://www.merriam-webster.com/dictionary/not%... -6 1 \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... -8 2 \n", + "https://news.harvard.edu/gazette/story/2018/11/... -9 1 \n", + "https://sciencetrends.com/is-there-a-replicabil... -9 1 \n", + "https://snewd.com/ebooks/leviathan/ -15 1 \n", + "\n", + " comments \\\n", + "url \n", + "https://www.patreon.com/alexanderwales [{'id': 'cqgom57', 'created_utc': 1429380827.0... \n", + "https://archiveofourown.org/works/11478249/chap... [{'id': 'dluq8vo', 'created_utc': 1503171093.0... \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... [{'id': 'chvfe2o', 'created_utc': 1401507549.0... \n", + "https://www.fictionpress.com/s/2961893/1/Mother... [{'id': 'cj87tis', 'created_utc': 1406362872.0... \n", + "https://twigserial.wordpress.com/ [{'id': 'cy39n9f', 'score': 11, 'body': 'Outsi... \n", + "... ... \n", + "https://www.merriam-webster.com/dictionary/not%... [{'id': 'gfaoohc', 'created_utc': 1607618149.0... \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... [{'id': 'cxn65fy', 'score': 0, 'body': 'I don'... \n", + "https://news.harvard.edu/gazette/story/2018/11/... [{'id': 'easqwb3', 'created_utc': 1543598269.0... \n", + "https://sciencetrends.com/is-there-a-replicabil... [{'id': 'easqwb3', 'created_utc': 1543598269.0... \n", + "https://snewd.com/ebooks/leviathan/ [{'id': 'gl1vde4', 'created_utc': 1611810163.0... \n", + "\n", + " thread_urls \\\n", + "url \n", + "https://www.patreon.com/alexanderwales [https://reddit.com/r/rational/comments/mtlce4... \n", + "https://archiveofourown.org/works/11478249/chap... [https://reddit.com/r/rational/comments/dwrzbr... \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... [https://reddit.com/r/rational/comments/134n9q... \n", + "https://www.fictionpress.com/s/2961893/1/Mother... [https://reddit.com/r/rational/comments/j9fac4... \n", + "https://twigserial.wordpress.com/ [https://reddit.com/r/rational/comments/f1rj3l... \n", + "... ... \n", + "https://www.merriam-webster.com/dictionary/not%... [https://reddit.com/r/rational/comments/kaat79... \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... [https://reddit.com/r/rational/comments/3vc0si... \n", + "https://news.harvard.edu/gazette/story/2018/11/... [https://reddit.com/r/rational/comments/a1t6um... \n", + "https://sciencetrends.com/is-there-a-replicabil... [https://reddit.com/r/rational/comments/a1t6um... \n", + "https://snewd.com/ebooks/leviathan/ [https://reddit.com/r/rational/comments/l6ki69... \n", + "\n", + " n_comments \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 22 \n", + "https://archiveofourown.org/works/11478249/chap... 63 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 55 \n", + "https://www.fictionpress.com/s/2961893/1/Mother... 60 \n", + "https://twigserial.wordpress.com/ 48 \n", + "... ... \n", + "https://www.merriam-webster.com/dictionary/not%... 1 \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... 2 \n", + "https://news.harvard.edu/gazette/story/2018/11/... 1 \n", + "https://sciencetrends.com/is-there-a-replicabil... 1 \n", + "https://snewd.com/ebooks/leviathan/ 1 \n", + "\n", + " first_link_utc \\\n", + "url \n", + "https://www.patreon.com/alexanderwales 2015-04-18 18:13:47 \n", + "https://archiveofourown.org/works/11478249/chap... 2017-08-19 19:31:33 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 2014-05-31 03:39:09 \n", + "https://www.fictionpress.com/s/2961893/1/Mother... 2014-07-26 08:21:12 \n", + "https://twigserial.wordpress.com/ 2015-12-18 10:22:59 \n", + "... ... \n", + "https://www.merriam-webster.com/dictionary/not%... 2020-12-10 16:35:49 \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... 2015-12-04 18:17:07 \n", + "https://news.harvard.edu/gazette/story/2018/11/... 2018-11-30 17:17:49 \n", + "https://sciencetrends.com/is-there-a-replicabil... 2018-11-30 17:17:49 \n", + "https://snewd.com/ebooks/leviathan/ 2021-01-28 05:02:43 \n", + "\n", + " last_link_utc \n", + "url \n", + "https://www.patreon.com/alexanderwales 2021-04-29 20:00:04 \n", + "https://archiveofourown.org/works/11478249/chap... 2024-04-17 19:03:01 \n", + "https://www.fanfiction.net/s/10360716/1/The-Met... 2023-06-26 19:21:24 \n", + "https://www.fictionpress.com/s/2961893/1/Mother... 2021-03-15 18:12:29 \n", + "https://twigserial.wordpress.com/ 2024-09-11 20:51:31 \n", + "... ... \n", + "https://www.merriam-webster.com/dictionary/not%... 2020-12-10 16:35:49 \n", + "https://wiki.lesswrong.com/wiki/Orthogonality_t... 2016-07-11 16:27:30 \n", + "https://news.harvard.edu/gazette/story/2018/11/... 2018-11-30 17:17:49 \n", + "https://sciencetrends.com/is-there-a-replicabil... 2018-11-30 17:17:49 \n", + "https://snewd.com/ebooks/leviathan/ 2021-01-28 05:02:43 \n", + "\n", + "[17888 rows x 7 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -658,7 +3706,10 @@ " \"banned\",\n", " # pateron.com ?\n", " \"reddit.com/user/\",\n", + " # 'smile.amazon.com',\n", " \"xkcd\",\n", + " 'feedly.com',\n", + " 'autohotkey.com',\n", " \"ebay\",\n", " \"youtubot\",\n", " \"reddit.com/r/rational\",\n", @@ -680,64 +3731,314 @@ " \"fanficfare\",\n", " \"bot.com\",\n", " \"greasyfork\",\n", + " 'edit?', # google docs\n", "]\n", "\n", "\n", "link_allowlist = [\"hfy\"]\n", "\n", - "print(f\"{len(df_links)} before blocklist\")\n", - "df_links = df_links[\n", - " ~df_links.index.str.contains(\"|\".join(link_blocklist), regex=True)\n", - " | df_links.index.str.contains(\"|\".join(link_allowlist), regex=True)\n", - "]\n", - "print(f\"{len(df_links)} after blocklist\")\n", - "df_links = df_links[df_links.index.str.startswith(\"http\")]\n", - "for suffix in banned_link_suffixes:\n", - " df_links = df_links[df_links.index.str.endswith(suffix)]\n", - "print(f\"{len(df_links)} after suffixes\")\n", + "df_links3 = df_links2.copy()\n", "\n", - "# must have more than one mention?\n", - "df_links = df_links[df_links > 1]\n", - "print(f\"{len(df_links)} after count\")\n", + "print(f\"{len(df_links3)} links before blocklist\")\n", + "df_links3 = df_links3[\n", + " ~df_links3.index.str.contains(\"|\".join(link_blocklist), regex=True)\n", + " | df_links3.index.str.contains(\"|\".join(link_allowlist), regex=True)\n", + "]\n", + "print(f\"{len(df_links3)} links after blocklist\")\n", + "df_links3 = df_links3[df_links3.index.str.startswith(\"http\")]\n", + "for suffix in banned_link_suffixes:\n", + " df_links3 = df_links3[~df_links3.index.str.endswith(suffix)]\n", + "print(f\"{len(df_links3)} links after rm suffixes\")\n", + "\n", + "# # must have more than one mention?\n", + "# df_links3 = df_links3[df_links3 > 1]\n", + "# print(f\"{len(df_links3)} after count\")\n", "\n", "# if it has reddit, github, wiki and bot in the title, it's probably a bot\n", - "df_links = df_links[\n", + "df_links3 = df_links3[\n", " ~(\n", - " df_links.index.str.contains(\"reddit\", case=False)\n", - " & df_links.index.str.contains(\"bot\", case=False)\n", + " df_links3.index.str.contains(\"reddit\", case=False)\n", + " & df_links3.index.str.contains(\"bot\", case=False)\n", " )\n", "]\n", - "df_links = df_links[\n", + "df_links3 = df_links3[\n", " ~(\n", - " df_links.index.str.contains(\"wiki\", case=False)\n", - " & df_links.index.str.contains(\"bot\", case=False)\n", + " df_links3.index.str.contains(\"wiki\", case=False)\n", + " & df_links3.index.str.contains(\"bot\", case=False)\n", " )\n", "]\n", - "df_links = df_links[\n", + "df_links3 = df_links3[\n", " ~(\n", - " df_links.index.str.contains(\"github\", case=False)\n", - " & df_links.index.str.contains(\"bot\", case=False)\n", + " df_links3.index.str.contains(\"github\", case=False)\n", + " & df_links3.index.str.contains(\"bot\", case=False)\n", " )\n", "]\n", - "print(f\"{len(df_links)} after bot\")\n", - "\n", - "# QC\n", - "pd.Series(df_links.index, index=df_links.values)" + "print(f\"{len(df_links3)} links after rm bot\")\n", + "df_links3\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
scoren_linkscommentsthread_urlsn_commentsfirst_link_utclast_link_utc
url
https://discord.gg/sM99CF364660[{'id': 'd88ddo9', 'created_utc': 1475248463.0...[https://reddit.com/r/rational/comments/7k08ef...602016-09-30 15:14:232018-08-10 17:12:02
https://docs.google.com/document/d/1EUSMDHdRdbvQJii5uoSezbjtvJpxdF6Da8zqvuW42bg/edit?usp=sharing62758[{'id': 'd80h9fe', 'score': 4, 'body': 'So a w...[https://reddit.com/r/rational/comments/7k08ef...582016-09-24 19:53:402018-08-10 17:12:02
https://www.youtube.com/watch?v=kbyTOAlhRHk44042[{'id': 'de5sdvj', 'created_utc': 1487951990.0...[https://reddit.com/r/rational/comments/7k08ef...422017-02-24 15:59:502020-05-25 21:14:35
https://docs.google.com/document/d/11QAh61C8gsL-5KbdIy5zx3IN6bv_E9UkHjwMLVQ7LHg/edit?usp=sharing43042[{'id': 'ddv88im', 'created_utc': 1487348445.0...[https://reddit.com/r/rational/comments/7k08ef...422017-02-17 16:20:452018-08-10 17:12:02
https://redact.dev/home42279[{'id': 'cyzo8d7', 'score': 2, 'body': 'politi...[https://reddit.com/r/rational/comments/gkw30p...792016-01-15 21:18:352020-11-04 03:12:20
........................
https://en.wikipedia.org/wiki/Gaming_disorder-91[{'id': 'easqwb3', 'created_utc': 1543598269.0...[https://reddit.com/r/rational/comments/a1t6um...12018-11-30 17:17:492018-11-30 17:17:49
https://www.reddit.com/r/rational/comments/ix25dk/d_monday_request_and_recommendation_thread/g64soul/-91[{'id': 'g65db9r', 'created_utc': 1600722605.0...[https://reddit.com/r/rational/comments/ix25dk...12020-09-21 21:10:052020-09-21 21:10:05
https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20e68m7xq-101[{'id': 'e68m7xq', 'score': -10, 'body': 'It s...[https://reddit.com/r/rational/comments/9h1454...12018-09-19 04:51:092018-09-19 04:51:09
https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20dxgv0pj-111[{'id': 'dxgv0pj', 'created_utc': 1523905663.0...[https://reddit.com/r/rational/comments/8cppyk...12018-04-16 19:07:432018-04-16 19:07:43
https://knowyourmeme.com/memes/absolutely-disgusting-171[{'id': 'esqmm0i', 'created_utc': 1562205524.0...[https://reddit.com/r/rational/comments/c8w3xe...12019-07-04 01:58:442019-07-04 01:58:44
\n", + "

15404 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " score n_links \\\n", + "url \n", + "https://discord.gg/sM99CF3 646 60 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 627 58 \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk 440 42 \n", + "https://docs.google.com/document/d/11QAh61C8gsL... 430 42 \n", + "https://redact.dev/home 422 79 \n", + "... ... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder -9 1 \n", + "https://www.reddit.com/r/rational/comments/ix25... -9 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... -10 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... -11 1 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... -17 1 \n", + "\n", + " comments \\\n", + "url \n", + "https://discord.gg/sM99CF3 [{'id': 'd88ddo9', 'created_utc': 1475248463.0... \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... [{'id': 'd80h9fe', 'score': 4, 'body': 'So a w... \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk [{'id': 'de5sdvj', 'created_utc': 1487951990.0... \n", + "https://docs.google.com/document/d/11QAh61C8gsL... [{'id': 'ddv88im', 'created_utc': 1487348445.0... \n", + "https://redact.dev/home [{'id': 'cyzo8d7', 'score': 2, 'body': 'politi... \n", + "... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder [{'id': 'easqwb3', 'created_utc': 1543598269.0... \n", + "https://www.reddit.com/r/rational/comments/ix25... [{'id': 'g65db9r', 'created_utc': 1600722605.0... \n", + "https://reddit.com/message/compose/?to=FatFinge... [{'id': 'e68m7xq', 'score': -10, 'body': 'It s... \n", + "https://reddit.com/message/compose/?to=FatFinge... [{'id': 'dxgv0pj', 'created_utc': 1523905663.0... \n", + "https://knowyourmeme.com/memes/absolutely-disgu... [{'id': 'esqmm0i', 'created_utc': 1562205524.0... \n", + "\n", + " thread_urls \\\n", + "url \n", + "https://discord.gg/sM99CF3 [https://reddit.com/r/rational/comments/7k08ef... \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... [https://reddit.com/r/rational/comments/7k08ef... \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk [https://reddit.com/r/rational/comments/7k08ef... \n", + "https://docs.google.com/document/d/11QAh61C8gsL... [https://reddit.com/r/rational/comments/7k08ef... \n", + "https://redact.dev/home [https://reddit.com/r/rational/comments/gkw30p... \n", + "... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder [https://reddit.com/r/rational/comments/a1t6um... \n", + "https://www.reddit.com/r/rational/comments/ix25... [https://reddit.com/r/rational/comments/ix25dk... \n", + "https://reddit.com/message/compose/?to=FatFinge... [https://reddit.com/r/rational/comments/9h1454... \n", + "https://reddit.com/message/compose/?to=FatFinge... [https://reddit.com/r/rational/comments/8cppyk... \n", + "https://knowyourmeme.com/memes/absolutely-disgu... [https://reddit.com/r/rational/comments/c8w3xe... \n", + "\n", + " n_comments \\\n", + "url \n", + "https://discord.gg/sM99CF3 60 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 58 \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk 42 \n", + "https://docs.google.com/document/d/11QAh61C8gsL... 42 \n", + "https://redact.dev/home 79 \n", + "... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder 1 \n", + "https://www.reddit.com/r/rational/comments/ix25... 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... 1 \n", + "https://reddit.com/message/compose/?to=FatFinge... 1 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 1 \n", + "\n", + " first_link_utc \\\n", + "url \n", + "https://discord.gg/sM99CF3 2016-09-30 15:14:23 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 2016-09-24 19:53:40 \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk 2017-02-24 15:59:50 \n", + "https://docs.google.com/document/d/11QAh61C8gsL... 2017-02-17 16:20:45 \n", + "https://redact.dev/home 2016-01-15 21:18:35 \n", + "... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder 2018-11-30 17:17:49 \n", + "https://www.reddit.com/r/rational/comments/ix25... 2020-09-21 21:10:05 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-09-19 04:51:09 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-04-16 19:07:43 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 2019-07-04 01:58:44 \n", + "\n", + " last_link_utc \n", + "url \n", + "https://discord.gg/sM99CF3 2018-08-10 17:12:02 \n", + "https://docs.google.com/document/d/1EUSMDHdRdbv... 2018-08-10 17:12:02 \n", + "https://www.youtube.com/watch?v=kbyTOAlhRHk 2020-05-25 21:14:35 \n", + "https://docs.google.com/document/d/11QAh61C8gsL... 2018-08-10 17:12:02 \n", + "https://redact.dev/home 2020-11-04 03:12:20 \n", + "... ... \n", + "https://en.wikipedia.org/wiki/Gaming_disorder 2018-11-30 17:17:49 \n", + "https://www.reddit.com/r/rational/comments/ix25... 2020-09-21 21:10:05 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-09-19 04:51:09 \n", + "https://reddit.com/message/compose/?to=FatFinge... 2018-04-16 19:07:43 \n", + "https://knowyourmeme.com/memes/absolutely-disgu... 2019-07-04 01:58:44 \n", + "\n", + "[15404 rows x 7 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# QC top links\n", - "df_links[\"url\"].value_counts().head(10)" + "# QC look at removed links\n", + "df_links2[~df_links2.index.isin(df_links3.index)].sort_values(\"score\", ascending=False)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -755,29 +4056,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 95, "metadata": {}, "outputs": [], "source": [ "from anycache import anycache\n", "\n", - "f_cache = Path(\"../outputs/.anycache\")" + "f_cache = Path(\"../outputs/.anycache\")\n", + "f_cache_web = Path(\"../outputs/.anycache_web\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 115, "metadata": {}, "outputs": [], "source": [ - "# #DEBUG clear\n", + "# # #DEBUG clear\n", "# import shutil\n", - "# shutil.rmtree(f_cache)" + "# shutil.rmtree(f_cache)\n", + "\n", + "\n", + "# shutil.rmtree(f_cache_web)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 97, "metadata": {}, "outputs": [], "source": [ @@ -804,13 +4109,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 98, + "metadata": {}, + "outputs": [], + "source": [ + "banned_titles = [\n", + " \"reddit - dive into anything\",\n", + " \"just a moment...\",\n", + " \"\",\n", + " \"x.com\",\n", + " 'x',\n", + "]\n", + "def is_banned_title(title):\n", + " return title.lower().strip() in banned_titles" + ] + }, + { + "cell_type": "code", + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "\"\"\"use lncrawl browser to get titles\n", "\n", "also use a persistent header browser so we can manually solve cloudfare\n", + "\n", + "\n", + "note: if it fails to start browser, try restarting VSCODE\n", "\"\"\"\n", "\n", "# see https://github.com/dipu-bd/lightnovel-crawler/blob/master/lncrawl/core/app.py#L84\n", @@ -821,7 +4146,7 @@ "from lncrawl.core.scraper import Scraper\n", "from readability import Document\n", "\n", - "logger = logging.getLogger(__name__)\n", + "\n", "from lncrawl.core.browser import EC\n", "\n", "# start a browser\n", @@ -837,40 +4162,395 @@ "browser.wait(\n", " \"#challenge-running\",\n", " expected_conditon=EC.invisibility_of_element,\n", - " timeout=100,\n", + " timeout=30,\n", ")\n", "# reader = Document(browser.html)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [], + "source": [ + "from bs4 import BeautifulSoup\n", + "import time\n", "\n", - "\n", - "@anycache(f_cache)\n", + "# @anycache(f_cache_web)\n", "def lncrawl_guess_novel_title(url: str) -> str:\n", " try:\n", " scraper = Scraper(url)\n", " response = scraper.get_response(url)\n", " reader = Document(response.text)\n", - " except ScraperErrorGroup as e:\n", - " if logger.isEnabledFor(logging.DEBUG):\n", - " logger.exception(\"Failed to get response: %s\", e)\n", + " title = reader.short_title()\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url}\"\n", + " except (AssertionError, ) + ScraperErrorGroup as e:\n", + " # if logger.isEnabledFor(logging.DEBUG):\n", + " # logger.exception(\"Failed to get response: %s\", e)\n", + " logger.debug(f\"[lncrawl:scrape].failed url={url} with {e}, trying [lncrawl.browser]\")\n", " browser.visit(url)\n", - " browser.wait(\"body\")\n", + " browser.wait(\"body\", timeout=40) \n", + " time.sleep(2) # wait for javascript to load\n", " reader = Document(browser.html)\n", - " title = reader.short_title()\n", - " assert \"just a moment\" not in title, f\"failed cloudfare when getting {url}\"\n", + " title = reader.short_title()\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url}\"\n", " return title\n", "\n", "\n", - "# # Test\n", + "# # # Test\n", "# urls = [\n", - "# # 'https://www.wuxiaworld.com/novel/overgeared',\n", - "# 'https://www.fanfiction.net/s/10758358/1/What-You-Leave-Behind',\n", - "# # 'https://www.royalroad.com/fiction/81002/the-years-of-apocalypse-a-time-loop-progression',\n", + "# 'https://x.com/AwfulFantasy/status/1866511632995962894',\n", + "# 'https://reddit.com/r/motheroflearning/comments/5v0zl0/links_to_discussion_threads',\n", + "# # 'https://parahumans.wordpress.com/',\n", + "# # # 'https://www.wuxiaworld.com/novel/overgeared',\n", + "# # 'https://www.fanfiction.net/s/10758358/1/What-You-Leave-Behind',\n", + "# # # 'https://www.royalroad.com/fiction/81002/the-years-of-apocalypse-a-time-loop-progression',\n", "# ]\n", "\n", - "# with Argv(['']):\n", - "# for url in urls:\n", - "# r = lncrawl_guess_novel_title(url)\n", - "# print(url)\n", - "# print(r)" + "# # with Argv(['']):\n", + "# for url in urls:\n", + "# r = lncrawl_guess_novel_title(url)\n", + "# print(url)\n", + "# print(r)" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [], + "source": [ + "import cloudscraper\n", + "from bs4 import BeautifulSoup\n", + "\n", + "session = cloudscraper.create_scraper()\n", + "\n", + "@anycache(f_cache_web)\n", + "def cloudscrape_title(url):\n", + " r = session.get(url, timeout=15, allow_redirects=True)\n", + " r.raise_for_status()\n", + " soup = BeautifulSoup(r.text, \"html.parser\")\n", + " title = soup.title.text.strip()\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url}\"\n", + " return title" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2024-12-25 18:23:59.339\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36mget_title\u001b[0m:\u001b[36m51\u001b[0m - \u001b[34m\u001b[1m[md] Failed to get title for https://x.com/AwfulFantasy/status/1866511632995962894 Failed to get title for https://x.com/AwfulFantasy/status/1866511632995962894, trying lncrawl\u001b[0m\n", + "\u001b[32m2024-12-25 18:23:59.812\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36mlncrawl_guess_novel_title\u001b[0m:\u001b[36m15\u001b[0m - \u001b[34m\u001b[1m[lncrawl:scrape].failed url=https://x.com/AwfulFantasy/status/1866511632995962894 with bad title `x.com` for url=https://x.com/AwfulFantasy/status/1866511632995962894, trying [lncrawl.browser]\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://x.com/AwfulFantasy/status/1866511632995962894 -> `Awful Fantasy on X: \"https://t.co/bXcCbRcmpI\"`\n" + ] + } + ], + "source": [ + "# dedup using title\n", + "\n", + "from pathlib import Path\n", + "\n", + "# TODO I should look at how fanficfare and lncrawler do this\n", + "# https://github.com/dipu-bd/lightnovel-crawler/blob/master/lncrawl/core/app.py#L84\n", + "\n", + "@anycache(f_cache)\n", + "def get_title_md(url):\n", + " t = titles_md.get(url, [])\n", + " if t:\n", + " s = pd.Series(t)\n", + " title = s.value_counts().index[0] # return most common title\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url}\"\n", + " return title\n", + " raise IndexError(f\"Failed to get title for {url}\")\n", + "\n", + "\n", + "def get_slugged_title(url2):\n", + " url = url2\n", + "\n", + " if \"reddit.com\" in url:\n", + " # if reddit thread get thead name e.g. 'https://www.reddit.com/r/Parahumans/comments/9oexpn/ward_spoilers_frustration_with_the_state_of_the/e7tprmt/?context=3'\n", + " if \"/comments/\" in url:\n", + " p = re.match(r\".+reddit.com/r/([^/]+)/comments/([^/]+)/([^/]*)\", url)\n", + " if p:\n", + " return 'thread ' + p.group(1).replace(\"_\", \" \") + \" \" + p.group(3).replace(\"_\", \" \")\n", + " # 'https://reddit.com/r/motheroflearning/comments/5v0zl0/',\n", + " if \"/r/\" in url:\n", + " p = re.match(r\".+reddit.com/r/([^/]+)/\", url)\n", + " if p:\n", + " return 'r/' + p.group(1)\n", + "\n", + "\n", + " # if that doesn't work, does the end of the url contain a slugged title?\n", + " # e.g. https://www.fanfiction.net/s/5193644/harry-potter-and-the-methods-of-rationality\n", + " slugged_title = url.split(\"/\")[-1].replace(\"-\", \" \")\n", + " if \" \" in slugged_title:\n", + " title = slugged_title\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url2}\"\n", + " return title\n", + " raise ValueError(f\"Failed to get title for {url2}\")\n", + "\n", + "\n", + "# @anycache(f_cache)\n", + "def get_title(url):\n", + " # first check if it's in the markdown cache\n", + " try:\n", + " return get_title_md(url)\n", + " except Exception as e:\n", + " logger.debug(f\"[md] Failed to get title for {url} {e}, trying lncrawl\")\n", + "\n", + " # try scraping from the web\n", + " try:\n", + " return lncrawl_guess_novel_title(url)\n", + " except Exception as e:\n", + " logger.debug(f\"[lncrawl] Failed to get title for {url} {e}, trying cloudscrape\")\n", + "\n", + " try:\n", + " return cloudscrape_title(url)\n", + " except Exception as e:\n", + " logger.debug(f\"[cloudscrape] Failed to get title for {url} {e}, trying slugged title\")\n", + "\n", + " # fall back on slugged title?\n", + " try:\n", + " return get_slugged_title(url)\n", + " except Exception as e:\n", + " logger.debug(f\"[slug] Failed to get title for {url} {e}\")\n", + "\n", + " title = url\n", + "\n", + " assert not is_banned_title(title), f\"bad title `{title}` for url={url}\"\n", + "\n", + " return title\n", + "\n", + "\n", + "# url = df_links.index[0]\n", + "\n", + "test_urls = [\n", + " 'https://x.com/AwfulFantasy/status/1866511632995962894',\n", + " # 'https://reddit.com/r/motheroflearning/comments/5v0zl0/links_to_discussion_threads',\n", + " # 'https://www.fimfiction.net/story/403715/zebric',\n", + " # 'https://myanimelist.net/anime/18153/Kyoukai_no_',\n", + " # 'https://yudkowsky.tumblr.com/',\n", + " # \"https://www.fanfiction.net/s/10758358/1/What-You-Leave-Behind\",\n", + " # \"https://www.wuxiaworld.com/novel/overgeared\",\n", + " # \"https://www.royalroad.com/fiction/81002/the-years-of-apocalypse-a-time-loop-progression\",\n", + "]\n", + "for url in test_urls:\n", + " r = get_title(url)\n", + " print(f\"{url} -> `{r}`\")" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'X'" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "browser.visit(url)\n", + "browser.wait(\"body\", timeout=20)\n", + "reader = Document(browser.html)\n", + "title = reader.short_title()\n", + "title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8d257d9548a14b2a9d8d3d02011758be", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/20 [00:00 {len(df3)} after title dedup\")" ] }, { @@ -1074,12 +4615,54 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], "source": [ - "import jinja2\n", + "def format_flair(author_flair_text):\n", + " if author_flair_text:\n", + " return f\" {author_flair_text}\"\n", + " return \"\"\n", "\n", - "environment = jinja2.Environment()\n", - "template = open(\"../index.jinja2.html\").read()\n", - "template = environment.from_string(template)\n", + "import markdown\n", + "def commentmd2html(x: dict) -> str:\n", + " body = markdown.markdown(x['body'])\n", + " ts = pd.to_datetime(x['created_utc'], unit='s').strftime('%Y-%m-%d')\n", + " flair = format_flair(x['author_flair_text'])\n", + " url = prefix + x['permalink']\n", + " s = f\"\"\"

{x.get('author', 'anon')} [{x['score']:+}] {flair} {ts}

\n", + "{body}\n", + "\"\"\"\n", + " # print(s)\n", + " return s\n", + "\n", + "def collapsibe(title, body):\n", + " return f\"\"\"
{title}\n", + "{body}\n", + "
\n", + "\"\"\"\n", + "\n", + "prefix = \"https://reddit.com\"\n", + "def c2md(x):\n", + " return collapsibe(x['id'], commentmd2html(x))\n", + "\n", + "# # QC test\n", + "# x = df3.iloc[0].comments[0]\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(c2md(x)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First transform the fields for display\n", "d = df3.reset_index().sort_values(\"score\", ascending=False)\n", "\n", "\n", @@ -1096,21 +4679,33 @@ " if isinstance(urls, str):\n", " urls = urls.split(\"\\n\")\n", "\n", + " urls = list(set(urls))\n", + "\n", " return sep.join(url2a(u) for u in urls)\n", "\n", "\n", - "d[\"url\"] = d[\"url\"].apply(urls2a)\n", + "d[\"url\"] = d[\"url\"].apply(lambda x: collapsibe(\"fiction_urls\", urls2a(x)))\n", "d[\"score\"] = d[\"score\"].round(2)\n", - "d[\"comment_urls\"] = d[\"comment_urls\"].apply(lambda s: urls2a(s, sep=\" \"))\n", "\n", - "# TODO comment md to html... if I want to keep them\n", + "prefix = 'https://reddit.com/r/rational/comments/'\n", + "d[\"comment_urls\"] = d['comments'].apply(lambda x: collapsibe(\"comment_links\", urls2a([prefix+y['permalink'] for y in x], sep=\" \")))\n", + "d[\"thread_urls\"] = d['thread_urls'].apply(lambda x: collapsibe(\"threads\", urls2a(x, sep=\" \")))\n", + "d['comments'] = d['comments'].progress_apply(lambda x: collapsibe(\"comments\", \"
\".join([c2md(c) for c in x])))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# put into the html template\n", + "import jinja2\n", "\n", + "environment = jinja2.Environment()\n", + "template = open(\"../index.jinja2.html\").read()\n", + "template = environment.from_string(template)\n", "\n", - "def get_first_date(x):\n", - " return pd.to_datetime(x, unit=\"s\").min().strftime(\"%Y-%m-%d %H:%M:%S\")\n", - "\n", - "\n", - "d[\"dates\"] = d[\"dates\"].apply(get_first_date)\n", "\n", "data = d.to_json(orient=\"values\")\n", "\n", @@ -1149,7 +4744,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "metadata": {}, "outputs": [], "source": [ @@ -1160,7 +4755,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Extra get a llm summary of each link\n", + "## Extra get a llm summary of each link [WIP]\n", "\n", "Grab all md's that mention a story, ask claude to summarize\n", "\n", @@ -1174,7 +4769,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ @@ -1200,18 +4795,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ - "posts = []\n", + "md_posts = []\n", "fs = sorted(Path(\"../data/cache2\").glob(\"*.md\"))\n", "for f in fs:\n", " s = f.open().read()\n", - " posts.append(s)\n", + " md_posts.append(s)\n", + "\n", + "\n", + "def get_post_context(urls: List[str], char_budget=100000):\n", + " # TODO maybe I should just get comment with links, and children?\n", "\n", "\n", - "def get_post_context(urls: List[str], budget=100000):\n", " # FIXME take in multiple urls and titles\n", " # FIXME given a token or char budget\n", " assert len(urls) > 0\n", @@ -1223,13 +4821,13 @@ " # TODO use langchain chunking?\n", "\n", " matches = []\n", - " for ii, post in enumerate(posts):\n", + " for ii, post in enumerate(md_posts):\n", " for url in urls:\n", " if url in post:\n", " matches.append(post)\n", " break\n", "\n", - " budget_pp = budget / len(matches)\n", + " budget_pp = char_budget / len(matches)\n", " s = \"\"\n", " for i in range(len(matches)):\n", " post = matches[i]\n", @@ -1265,7 +4863,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ @@ -1348,7 +4946,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ @@ -1369,7 +4967,7 @@ " title = df3.index[i]\n", " urls = df3.url[i]\n", "\n", - " context = get_post_context(urls, budget=50000)\n", + " context = get_post_context(urls, char_budget=50000)\n", " tokens = len(enc.encode(context))\n", " print(\n", " f\"Input Tokens: {tokens}. Input Cost: {cost * tokens:.4f} USD, for url {urls}\"\n", diff --git a/nbs/mjc_005_llm.ipynb b/nbs/mjc_005_llm.ipynb new file mode 100644 index 00000000..5d86a863 --- /dev/null +++ b/nbs/mjc_005_llm.ipynb @@ -0,0 +1,888 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import re\n", + "from pathlib import Path\n", + "from typing import List, Tuple, Optional\n", + "import pandas as pd\n", + "from tqdm.auto import tqdm\n", + "tqdm.pandas()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10257 threads\n" + ] + } + ], + "source": [ + "fs = sorted(Path(\"../data/json2\").glob(\"*.json\"))\n", + "print(f\"{len(fs)} threads\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
scoren_linksn_commentscommentsthread_urlsfirst_link_utclast_link_utcurl
title
Worth the Candle1445108108[{'author_flair_text': 'Self-Appointed Court S...[https://reddit.com/r/rational/comments/zvov5c...2017-07-28 13:17:362024-04-17 19:03:01[https://archiveofourown.org/works/11478249/ch...
Alexander Wales - The Metropolitan Man, Shadows of the Limelight14082222[{'author_flair_text': 'Time flies like an arr...[https://reddit.com/r/rational/comments/zvov5c...2015-04-18 18:13:472021-04-29 20:00:04[https://www.patreon.com/alexanderwales]
Reddit - Dive into anything13307272[{'author_flair_text': 'Team Glimglam', 'body'...[https://reddit.com/r/rational/comments/zvov5c...2014-09-04 21:14:232024-07-31 01:19:04[https://reddit.com/r/motheroflearning/comment...
Mother of Learning8598484[{'author_flair_text': 'Utopian Smut Peddler',...[https://reddit.com/r/rational/comments/zvov5c...2014-07-26 08:21:122024-05-21 07:04:42[https://www.fictionpress.com/s/2961893/1/Moth...
The Metropolitan Man8015858[{'author_flair_text': 'Time flies like an arr...[https://reddit.com/r/rational/comments/zvov5c...2014-05-31 03:39:092023-06-26 19:21:24[https://www.fanfiction.net/s/10360716/1/The-M...
...........................
I know Bouletcorp did one...1622[{'author_flair_text': 'Time flies like an arr...[https://reddit.com/r/rational/comments/zvov5c...2015-04-30 04:07:012015-10-29 01:28:38[http://english.bouletcorp.com/2014/09/05/king...
The Writing on the Wall1633[{'author_flair_text': None, 'body': '[CORDYCE...[https://reddit.com/r/rational/comments/zvov5c...2016-06-22 23:40:412019-10-31 18:48:58[https://www.fimfiction.net/story/42409/the-wr...
The actual arguments I heard against trusting fact checkers1622[{'author_flair_text': None, 'body': 'The best...[https://reddit.com/r/rational/comments/zvov5c...2016-11-28 18:49:352017-01-16 19:08:14[https://www.reddit.com/r/AskTrumpSupporters/c...
The flash fiction designation is usually reserved for stories that are under 1,500 words1611[{'author_flair_text': None, 'body': '1500-300...[https://reddit.com/r/rational/comments/zvov5c...2019-04-28 05:47:472019-04-28 05:47:47[https://www.writersdigest.com/writing-article...
The Possibility of a Superhero: E. Paul Zehr, James Kakalios: 8601420885141: Amazon.com: Books1611[{'author_flair_text': None, 'body': 'I've got...[https://reddit.com/r/rational/comments/zvov5c...2018-01-06 04:50:402018-01-06 04:50:40[https://www.amazon.com/Becoming-Batman-Possib...
\n", + "

2591 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " score n_links \\\n", + "title \n", + "Worth the Candle 1445 108 \n", + "Alexander Wales - The Metropolitan Man, Shadows... 1408 22 \n", + "Reddit - Dive into anything 1330 72 \n", + "Mother of Learning 859 84 \n", + "The Metropolitan Man 801 58 \n", + "... ... ... \n", + "I know Bouletcorp did one... 16 2 \n", + "The Writing on the Wall 16 3 \n", + "The actual arguments I heard against trusting f... 16 2 \n", + "The flash fiction designation is usually reserv... 16 1 \n", + "The Possibility of a Superhero: E. Paul Zehr, J... 16 1 \n", + "\n", + " n_comments \\\n", + "title \n", + "Worth the Candle 108 \n", + "Alexander Wales - The Metropolitan Man, Shadows... 22 \n", + "Reddit - Dive into anything 72 \n", + "Mother of Learning 84 \n", + "The Metropolitan Man 58 \n", + "... ... \n", + "I know Bouletcorp did one... 2 \n", + "The Writing on the Wall 3 \n", + "The actual arguments I heard against trusting f... 2 \n", + "The flash fiction designation is usually reserv... 1 \n", + "The Possibility of a Superhero: E. Paul Zehr, J... 1 \n", + "\n", + " comments \\\n", + "title \n", + "Worth the Candle [{'author_flair_text': 'Self-Appointed Court S... \n", + "Alexander Wales - The Metropolitan Man, Shadows... [{'author_flair_text': 'Time flies like an arr... \n", + "Reddit - Dive into anything [{'author_flair_text': 'Team Glimglam', 'body'... \n", + "Mother of Learning [{'author_flair_text': 'Utopian Smut Peddler',... \n", + "The Metropolitan Man [{'author_flair_text': 'Time flies like an arr... \n", + "... ... \n", + "I know Bouletcorp did one... [{'author_flair_text': 'Time flies like an arr... \n", + "The Writing on the Wall [{'author_flair_text': None, 'body': '[CORDYCE... \n", + "The actual arguments I heard against trusting f... [{'author_flair_text': None, 'body': 'The best... \n", + "The flash fiction designation is usually reserv... [{'author_flair_text': None, 'body': '1500-300... \n", + "The Possibility of a Superhero: E. Paul Zehr, J... [{'author_flair_text': None, 'body': 'I've got... \n", + "\n", + " thread_urls \\\n", + "title \n", + "Worth the Candle [https://reddit.com/r/rational/comments/zvov5c... \n", + "Alexander Wales - The Metropolitan Man, Shadows... [https://reddit.com/r/rational/comments/zvov5c... \n", + "Reddit - Dive into anything [https://reddit.com/r/rational/comments/zvov5c... \n", + "Mother of Learning [https://reddit.com/r/rational/comments/zvov5c... \n", + "The Metropolitan Man [https://reddit.com/r/rational/comments/zvov5c... \n", + "... ... \n", + "I know Bouletcorp did one... [https://reddit.com/r/rational/comments/zvov5c... \n", + "The Writing on the Wall [https://reddit.com/r/rational/comments/zvov5c... \n", + "The actual arguments I heard against trusting f... [https://reddit.com/r/rational/comments/zvov5c... \n", + "The flash fiction designation is usually reserv... [https://reddit.com/r/rational/comments/zvov5c... \n", + "The Possibility of a Superhero: E. Paul Zehr, J... [https://reddit.com/r/rational/comments/zvov5c... \n", + "\n", + " first_link_utc \\\n", + "title \n", + "Worth the Candle 2017-07-28 13:17:36 \n", + "Alexander Wales - The Metropolitan Man, Shadows... 2015-04-18 18:13:47 \n", + "Reddit - Dive into anything 2014-09-04 21:14:23 \n", + "Mother of Learning 2014-07-26 08:21:12 \n", + "The Metropolitan Man 2014-05-31 03:39:09 \n", + "... ... \n", + "I know Bouletcorp did one... 2015-04-30 04:07:01 \n", + "The Writing on the Wall 2016-06-22 23:40:41 \n", + "The actual arguments I heard against trusting f... 2016-11-28 18:49:35 \n", + "The flash fiction designation is usually reserv... 2019-04-28 05:47:47 \n", + "The Possibility of a Superhero: E. Paul Zehr, J... 2018-01-06 04:50:40 \n", + "\n", + " last_link_utc \\\n", + "title \n", + "Worth the Candle 2024-04-17 19:03:01 \n", + "Alexander Wales - The Metropolitan Man, Shadows... 2021-04-29 20:00:04 \n", + "Reddit - Dive into anything 2024-07-31 01:19:04 \n", + "Mother of Learning 2024-05-21 07:04:42 \n", + "The Metropolitan Man 2023-06-26 19:21:24 \n", + "... ... \n", + "I know Bouletcorp did one... 2015-10-29 01:28:38 \n", + "The Writing on the Wall 2019-10-31 18:48:58 \n", + "The actual arguments I heard against trusting f... 2017-01-16 19:08:14 \n", + "The flash fiction designation is usually reserv... 2019-04-28 05:47:47 \n", + "The Possibility of a Superhero: E. Paul Zehr, J... 2018-01-06 04:50:40 \n", + "\n", + " url \n", + "title \n", + "Worth the Candle [https://archiveofourown.org/works/11478249/ch... \n", + "Alexander Wales - The Metropolitan Man, Shadows... [https://www.patreon.com/alexanderwales] \n", + "Reddit - Dive into anything [https://reddit.com/r/motheroflearning/comment... \n", + "Mother of Learning [https://www.fictionpress.com/s/2961893/1/Moth... \n", + "The Metropolitan Man [https://www.fanfiction.net/s/10360716/1/The-M... \n", + "... ... \n", + "I know Bouletcorp did one... [http://english.bouletcorp.com/2014/09/05/king... \n", + "The Writing on the Wall [https://www.fimfiction.net/story/42409/the-wr... \n", + "The actual arguments I heard against trusting f... [https://www.reddit.com/r/AskTrumpSupporters/c... \n", + "The flash fiction designation is usually reserv... [https://www.writersdigest.com/writing-article... \n", + "The Possibility of a Superhero: E. Paul Zehr, J... [https://www.amazon.com/Becoming-Batman-Possib... \n", + "\n", + "[2591 rows x 8 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import display\n", + "# load output from\n", + "df3 = pd.read_parquet(\"../outputs/df_links4.parquet\")\n", + "df3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Extra get a llm summary of each link [WIP]\n", + "\n", + "Grab all md's that mention a story, ask claude to summarize\n", + "\n", + "We could also get total karma per mention" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import dotenv\n", + "from anycache import anycache\n", + "\n", + "dotenv.load_dotenv()\n", + "from openai import OpenAI\n", + "\n", + "client = OpenAI()\n", + "\n", + "import tiktoken\n", + "\n", + "enc = tiktoken.encoding_for_model(\"gpt-4o-mini\")\n", + "cost = 0.150 / 1e6" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('2009-11-25T02:34:03', '2024-12-16T15:00:13')" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# load all md posts \n", + "md_posts = []\n", + "fs = sorted(Path(\"../data/cache2\").glob(\"*.md\"))\n", + "for f in fs:\n", + " s = f.open().read()\n", + " md_posts.append(s)\n", + "\n", + "\n", + "# order by date\n", + "def md2date(s: str) -> str:\n", + " return s.split('* Created: ')[1].split('\\n')[0]\n", + "\n", + "md_posts = sorted(md_posts, key=md2date)\n", + "md2date(md_posts[0]), md2date(md_posts[-1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def get_post_context(urls: List[str], char_budget=100000, min_size=1000) -> str:\n", + " # TODO maybe I should just get comment with links, and children?\n", + " assert len(urls) > 0\n", + " # from comments\n", + " # return df3.loc[title].comments\n", + "\n", + " # or I could just all markdowns with\n", + "\n", + " # TODO use langchain chunking?\n", + "\n", + " matches = []\n", + " for ii, post in enumerate(md_posts):\n", + " for url in urls:\n", + " if url in post:\n", + " matches.append(post)\n", + " break\n", + "\n", + " budget_pp = char_budget / len(matches)\n", + " budget_pp = max(budget_pp, min_size)\n", + " s = \"\"\n", + " for i in range(len(matches)):\n", + " post = matches[i]\n", + "\n", + " for url in urls:\n", + " if url in post:\n", + " ind = post.index(url)\n", + "\n", + " i0 = int(max(0, ind - budget_pp // 4))\n", + " i1 = int(min(len(post), ind + budget_pp // 4 * 3))\n", + " post_chunk = post[i0:i1]\n", + " if i0 > 0:\n", + " post_chunk = \"...\" + post_chunk\n", + " if i1 < len(post):\n", + " post_chunk = post_chunk + \"...\"\n", + "\n", + " s += f\"\\n\\n----- Thread {ii} -----\\n\\n\" + post_chunk\n", + "\n", + " # if too large get first N//2 and last N//2\n", + " if len(s) > char_budget:\n", + " s = s[:char_budget // 2] + \"...\" + s[-char_budget // 2:]\n", + " return s\n", + "\n", + "\n", + "# url = df3.url[0].split('\\n')\n", + "# print(url)\n", + "# c = get_context(url, 400000)\n", + "# print(c[:1000])" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['https://www.amazon.com/Becoming-Batman-Possibility-Paul-Zehr/dp/0801890632'],\n", + " dtype=object)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df3.iloc[-1].url" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# QC test with long and short context\n", + "# urls = ['https://archiveofourown.org/works/11478249/chapters/25740126',\n", + "# 'https://www.royalroad.com/fiction/25137/worth-the-candle',\n", + "# 'http://archiveofourown.org/works/11478249?view_full_work=true',\n", + "# 'http://archiveofourown.org/works/11478249/chapters/25740126',\n", + "# 'https://archiveofourown.org/works/11478249']\n", + "# c = get_post_context(urls, 400000)\n", + "# print(urls)\n", + "# print(c)\n", + "\n", + "# # urls = ['https://www.amazon.com/Becoming-Batman-Possibility-Paul-Zehr/dp/0801890632']\n", + "# # c = get_post_context(urls, 400000)\n", + "# # print(urls)\n", + "# # print(c)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "\n", + "from pydantic import BaseModel, Field\n", + "\n", + "\n", + "class FictionInfo(BaseModel):\n", + " title: str\n", + " description: str = Field(description=\"A few paragraphs of very concise, informative, dense, description of the work\")\n", + " tags: List[str] = Field(\n", + " description=\"\"\"Long list of common descriptors: format (web serial, fanfic, lightnovel, short, complete, comic), genre (scifi, fantasy)\n", + " Key elements (rational, timeloop, litrpg, progression, cultivation, isekai)\n", + " Content notes (grimdark, romance, harem, queer, funny, NSFW)\n", + " \"\"\"\n", + " )\n", + "\n", + " # status: Optional[str] = Field(description=\"complete/ongoing/hiatus/abandoned\")\n", + " # type: str = Field(description='e.g. fanfiction, original, comic, etc.')\n", + "\n", + " reviews_quotes: List[str] = Field(\n", + " description=\"Directly and fully quote excerpts from every single users' comments about the fiction\"\n", + " )\n", + " reviews_summary: Optional[str] = Field(\n", + " description=\"Structured, dry, and concise summary of reviews\"\n", + " )\n", + " reccomendations: Optional[str] = Field(\n", + " description=\"Why users recommend it\"\n", + " )\n", + " disrecommendations: Optional[str] = Field(\n", + " description=\"Why users disrecommend it\"\n", + " )\n", + " why: Optional[str] = Field(\n", + " description=\"Why/when might readers of r/rational like it\"\n", + " )\n", + " if_you_liked_x_you_will_like_this: List[str] = Field(\n", + " description=\"Fans of X will also like the work. Exhaustively list ALL of X mentioned in the discussions.\"\n", + " )\n", + "\n", + " quality: float = Field(\n", + " # ge=0.0, le=10.0,\n", + " description=\"Overall user sentiment out of 10\"\n", + " )\n", + " rationality: Optional[float] = Field(\n", + " # ge=0.0, le=10.0,\n", + " description=\"Systematic worldbuilding, character competence, logical consistency. Where HPMOR is a 10 and Worm is a 5.\"\n", + " )\n", + " rating_writing: Optional[float]\n", + " rating_plot: Optional[float]\n", + " rating_character: Optional[float]\n", + " rating_worldbuilding: Optional[float]\n", + "\n", + "\n", + "f_cache_llm = Path(\"../outputs/.anycache3\")\n", + "\n", + "\n", + "# @anycache(f_cache_llm)\n", + "def get_llm_summary(title: str, urls: str, context: str):\n", + " chat_completion = client.beta.chat.completions.parse(\n", + " messages=[\n", + " {\n", + " \"role\": \"system\",\n", + " \"content\": \"You are Gwern Branwern, an internet librarian who specializes in rational fiction. You are summarising community reccomendations from r/rational into a dry, informative, concise, and structured format for your own personal notes. Because it's private you can be consise, frank, and opinionated.\",\n", + " },\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": f\"\"\"Using the given structure, summarize the parts of these discussions where they talk about {title} (urls: {urls}).\n", + "\n", + "### Context:\n", + "\n", + "{context}\"\"\",\n", + " },\n", + " ],\n", + " model=\"gpt-4o-mini\",\n", + " response_format=FictionInfo,\n", + " )\n", + "\n", + " return chat_completion.choices[0].message.parsed.__dict__" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [], + "source": [ + "# import shutil\n", + "# shutil.rmtree(f_cache_llm, ignore_errors=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'properties': {'title': {'title': 'Title', 'type': 'string'},\n", + " 'description': {'description': 'A few paragraphs of very concise, informative, dense, description of the work',\n", + " 'title': 'Description',\n", + " 'type': 'string'},\n", + " 'tags': {'description': 'Long list of common descriptors: format (web serial, fanfic, lightnovel, short, complete, comic), genre (scifi, fantasy)\\n Key elements (rational, timeloop, litrpg, progression, cultivation, isekai)\\n Content notes (grimdark, romance, harem, queer, funny, NSFW)\\n ',\n", + " 'items': {'type': 'string'},\n", + " 'title': 'Tags',\n", + " 'type': 'array'},\n", + " 'reviews_quotes': {'description': \"Directly and fully quote excerpts from every single users' comments about the fiction\",\n", + " 'items': {'type': 'string'},\n", + " 'title': 'Reviews Quotes',\n", + " 'type': 'array'},\n", + " 'reviews_summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}],\n", + " 'description': 'Structured, dry, and concise summary of reviews',\n", + " 'title': 'Reviews Summary'},\n", + " 'reccomendations': {'anyOf': [{'type': 'string'}, {'type': 'null'}],\n", + " 'description': 'Why users recommend it',\n", + " 'title': 'Reccomendations'},\n", + " 'disrecommendations': {'anyOf': [{'type': 'string'}, {'type': 'null'}],\n", + " 'description': 'Why users disrecommend it',\n", + " 'title': 'Disrecommendations'},\n", + " 'why': {'anyOf': [{'type': 'string'}, {'type': 'null'}],\n", + " 'description': 'Why/when might readers of r/rational like it',\n", + " 'title': 'Why'},\n", + " 'if_you_liked_x_you_will_like_this': {'description': 'Fans of X will also like the work. Exhaustively list ALL of X mentioned in the discussions.',\n", + " 'items': {'type': 'string'},\n", + " 'title': 'If You Liked X You Will Like This',\n", + " 'type': 'array'},\n", + " 'quality': {'description': 'Overall user sentiment out of 10',\n", + " 'title': 'Quality',\n", + " 'type': 'number'},\n", + " 'rationality': {'anyOf': [{'type': 'number'}, {'type': 'null'}],\n", + " 'description': 'Systematic worldbuilding, character competence, logical consistency. Where HPMOR is a 10 and Worm is a 5.',\n", + " 'title': 'Rationality'},\n", + " 'rating_writing': {'anyOf': [{'type': 'number'}, {'type': 'null'}],\n", + " 'title': 'Rating Writing'},\n", + " 'rating_plot': {'anyOf': [{'type': 'number'}, {'type': 'null'}],\n", + " 'title': 'Rating Plot'},\n", + " 'rating_character': {'anyOf': [{'type': 'number'}, {'type': 'null'}],\n", + " 'title': 'Rating Character'},\n", + " 'rating_worldbuilding': {'anyOf': [{'type': 'number'}, {'type': 'null'}],\n", + " 'title': 'Rating Worldbuilding'}},\n", + " 'required': ['title',\n", + " 'description',\n", + " 'tags',\n", + " 'reviews_quotes',\n", + " 'reviews_summary',\n", + " 'reccomendations',\n", + " 'disrecommendations',\n", + " 'why',\n", + " 'if_you_liked_x_you_will_like_this',\n", + " 'quality',\n", + " 'rationality',\n", + " 'rating_writing',\n", + " 'rating_plot',\n", + " 'rating_character',\n", + " 'rating_worldbuilding'],\n", + " 'title': 'FictionInfo',\n", + " 'type': 'object',\n", + " 'additionalProperties': False}" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from openai.lib._pydantic import to_strict_json_schema\n", + "\n", + "to_strict_json_schema(FictionInfo)" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "61da806424a046a0bfaa3b90ec004a0c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/1000 [00:00 **u/cthulhuraejepsen** [+9] *Fruit flies like a banana**\n", + "> \n", + "> This is a self-insert litRPG portal fantasy, and I would have made it a Groundhog Day loop if I thought I could fit that in.\n", + "> \n", + "\n", + "> **u/LucidityWaver** [+8] *\n", + "> \n", + "> > loosely based on my personal experience of falling into a portal to another world and discovering that I had a character sheet attached to my soul. This story uses some custom CSS for the character sheet and definition tags to allow mouseover on various game terms\n", + "> I can tell I'm going to love this already....\n", + "\n", + "----- Thread 10261 -----\n", + "\n", + "..., another four chapters, so if you were one of those people who doesn't read serials \n" + ] + }, + { + "data": { + "text/plain": [ + "{'title': 'Worth the Candle',\n", + " 'description': \"*Worth the Candle* is a self-insert litRPG portal fantasy novel written by Alexander Wales. The story follows Juniper, a teenage boy who unexpectedly finds himself in a fantasy realm reminiscent of various tabletop games he has played and run as a Dungeon Master. In this world, Juniper possesses a character sheet and must navigate the challenges and mechanics of a complex, game-like system while dealing with themes of agency, friendship, and the consequences of his actions. The work explores the protagonist's growth through various trials, character interactions, and the use of humor interspersed with serious topics such as trauma and morality, making it an engaging read for fans of the genre.\",\n", + " 'tags': ['web serial',\n", + " 'litRPG',\n", + " 'fantasy',\n", + " 'self-insert',\n", + " 'portal fantasy',\n", + " 'grimdark',\n", + " 'humor',\n", + " 'progression'],\n", + " 'reviews_quotes': ['\"This is quickly becoming my favorite litrpg. You need to work a little harder to catch up to \\'Wandering Inn.\\'\" - u/josephwdye',\n", + " '\"One of the things I love about *Worth the Candle* is that it tends to avoid shortcuts and oversimplifications.\" - u/Noumero',\n", + " '\"The plot is rather interesting, as are the characters. Great work!\" - u/Noumero',\n", + " '\"I am dealing with a little bit of seasonal affective disorder right now, but this story is still excellent!\" - u/cthulhuraejepsen',\n", + " '\"I\\'m glad to see the author maintain a high update speed!\" - u/EliezerYudkowsky'],\n", + " 'reviews_summary': \"Overall, readers appreciate the balance of comedy and serious themes, intricate worldbuilding, and character development. There is a strong sentiment regarding the pacing and the author's update frequency, which is positively noted.\",\n", + " 'reccomendations': 'Highly recommended for readers who enjoy complex worldbuilding, humor alongside serious themes, and character growth in a litrPG setting. Particularly appealing to fans of tabletop RPGs and game mechanics.',\n", + " 'disrecommendations': 'May not appeal to readers who dislike self-insert narratives or genre-savvy approaches to storytelling. Those averse to grim topics or violence may also find aspects challenging.',\n", + " 'why': 'Fans of *Worm* or *HPMOR* who enjoy well-developed characters and logical consistency in fantasy worlds will likely appreciate *Worth the Candle* for its nuanced approach to familiar tropes.',\n", + " 'if_you_liked_x_you_will_like_this': ['Worm',\n", + " 'HPMOR',\n", + " 'The Wandering Inn',\n", + " 'Mother of Learning',\n", + " 'The Forerunner Initiative',\n", + " 'The Erogamer'],\n", + " 'quality': 9.0,\n", + " 'rationality': 8.0,\n", + " 'rating_writing': 8.0,\n", + " 'rating_plot': 8.0,\n", + " 'rating_character': 9.0,\n", + " 'rating_worldbuilding': 9.0,\n", + " 'title2': 'Worth the Candle',\n", + " 'url': array(['https://archiveofourown.org/works/11478249/chapters/25740126',\n", + " 'https://www.royalroad.com/fiction/25137/worth-the-candle',\n", + " 'http://archiveofourown.org/works/11478249?view_full_work=true',\n", + " 'http://archiveofourown.org/works/11478249/chapters/25740126',\n", + " 'https://archiveofourown.org/works/11478249'], dtype=object)}" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "ename": "ZeroDivisionError", + "evalue": "division by zero", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[120], line 26\u001b[0m\n\u001b[1;32m 22\u001b[0m display(llm_data)\n\u001b[1;32m 24\u001b[0m llm_info\u001b[38;5;241m.\u001b[39mappend(llm_data)\n\u001b[0;32m---> 26\u001b[0m \u001b[38;5;241;43m1\u001b[39;49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\n", + "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero" + ] + } + ], + "source": [ + "llm_info = []\n", + "\n", + "\n", + "l = min(1000, len(df3))\n", + "for i in tqdm(range(0, l)):\n", + " title = df3.index[i]\n", + " urls = df3.iloc[i].url\n", + "\n", + " context = get_post_context(urls, char_budget=50000)\n", + " tokens = len(enc.encode(context))\n", + " print(\n", + " f\"Input Tokens: {tokens}. Input Cost: {cost * tokens:.4f} USD, for title={title} with urls={urls}\"\n", + " )\n", + "\n", + " llm_data = get_llm_summary(title, urls, context)\n", + "\n", + " llm_data[\"title2\"] = title\n", + " llm_data[\"url\"] = urls\n", + "\n", + " if i==0:\n", + " print(f\"Content: {context[:1000]}\")\n", + " display(llm_data)\n", + "\n", + " llm_info.append(llm_data)\n", + "\n", + " 1/0" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_llm = pd.DataFrame(llm_info)\n", + "df_llm\n", + "# also join with df4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/poetry.lock b/poetry.lock index 8175a9e5..2cfaa518 100644 --- a/poetry.lock +++ b/poetry.lock @@ -848,6 +848,20 @@ http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "humanize" +version = "4.11.0" +description = "Python humanize utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "humanize-4.11.0-py3-none-any.whl", hash = "sha256:b53caaec8532bcb2fff70c8826f904c35943f8cecaca29d272d9df38092736c0"}, + {file = "humanize-4.11.0.tar.gz", hash = "sha256:e66f36020a2d5a974c504bd2555cf770621dbdbb6d82f94a6857c0b1ea2608be"}, +] + +[package.extras] +tests = ["freezegun", "pytest", "pytest-cov"] + [[package]] name = "idna" version = "3.8" @@ -2042,6 +2056,60 @@ files = [ [package.extras] tests = ["pytest"] +[[package]] +name = "pyarrow" +version = "18.1.0" +description = "Python library for Apache Arrow" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyarrow-18.1.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e21488d5cfd3d8b500b3238a6c4b075efabc18f0f6d80b29239737ebd69caa6c"}, + {file = "pyarrow-18.1.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b516dad76f258a702f7ca0250885fc93d1fa5ac13ad51258e39d402bd9e2e1e4"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f443122c8e31f4c9199cb23dca29ab9427cef990f283f80fe15b8e124bcc49b"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470"}, + {file = "pyarrow-18.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56"}, + {file = "pyarrow-18.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9736ba3c85129d72aefa21b4f3bd715bc4190fe4426715abfff90481e7d00812"}, + {file = "pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854"}, + {file = "pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe"}, + {file = "pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0"}, + {file = "pyarrow-18.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a"}, + {file = "pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d"}, + {file = "pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33"}, + {file = "pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30"}, + {file = "pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99"}, + {file = "pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b"}, + {file = "pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c"}, + {file = "pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c"}, + {file = "pyarrow-18.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181"}, + {file = "pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc"}, + {file = "pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9"}, + {file = "pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba"}, + {file = "pyarrow-18.1.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:0b331e477e40f07238adc7ba7469c36b908f07c89b95dd4bd3a0ec84a3d1e21e"}, + {file = "pyarrow-18.1.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:2c4dd0c9010a25ba03e198fe743b1cc03cd33c08190afff371749c52ccbbaf76"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f97b31b4c4e21ff58c6f330235ff893cc81e23da081b1a4b1c982075e0ed4e9"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a4813cb8ecf1809871fd2d64a8eff740a1bd3691bbe55f01a3cf6c5ec869754"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:05a5636ec3eb5cc2a36c6edb534a38ef57b2ab127292a716d00eabb887835f1e"}, + {file = "pyarrow-18.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:73eeed32e724ea3568bb06161cad5fa7751e45bc2228e33dcb10c614044165c7"}, + {file = "pyarrow-18.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:a1880dd6772b685e803011a6b43a230c23b566859a6e0c9a276c1e0faf4f4052"}, + {file = "pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73"}, +] + +[package.extras] +test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] + [[package]] name = "pycodestyle" version = "2.12.1" @@ -3302,4 +3370,4 @@ h11 = ">=0.9.0,<1" [metadata] lock-version = "2.0" python-versions = ">=3.10,<4.0" -content-hash = "35f407a3a2ca5df109fc3ff7741828f016f1fa3fc90b0c651b4414a2bac71905" +content-hash = "5660dc3e3a96458dc7e86b6b3d98691b96a882602dc3ee37eeb2e041da44b02f"