diff --git a/files/__main__.py b/files/__main__.py index 8a6f0261a..92e1158b1 100644 --- a/files/__main__.py +++ b/files/__main__.py @@ -74,7 +74,6 @@ if not path.isfile(f'/site_settings.json'): @app.before_request def before_request(): - g.agent = request.headers.get("User-Agent") if not g.agent and request.path != '/kofi': return 'Please use a "User-Agent" header!', 403 @@ -94,6 +93,13 @@ def before_request(): g.webview = '; wv) ' in ua g.inferior_browser = 'iphone' in ua or 'ipad' in ua or 'ipod' in ua or 'mac os' in ua or ' firefox/' in ua + #### WPD TEMP #### temporary WPD migration logic: redirect to / + if request.host == 'watchpeopledie.co' and app.config["SERVER_NAME"] == "watchpeopledie.co": + request.path = request.path.rstrip('/') + if not request.path: request.path = '/' + if request.path != '/': + return redirect('/') + #### END WPD TEMP #### request.path = request.path.rstrip('/') if not request.path: request.path = '/' request.full_path = request.full_path.rstrip('?').rstrip('/') diff --git a/files/assets/images/WPD/WPDBYE_w_text_2.png b/files/assets/images/WPD/WPDBYE_w_text_2.png new file mode 100644 index 000000000..37ae34fd8 Binary files /dev/null and b/files/assets/images/WPD/WPDBYE_w_text_2.png differ diff --git a/files/assets/images/badges/181.webp b/files/assets/images/badges/181.webp new file mode 100644 index 000000000..060e06a49 Binary files /dev/null and b/files/assets/images/badges/181.webp differ diff --git a/files/assets/images/badges/182.webp b/files/assets/images/badges/182.webp new file mode 100644 index 000000000..13bb31b52 Binary files /dev/null and b/files/assets/images/badges/182.webp differ diff --git a/files/helpers/const.py b/files/helpers/const.py index 49c17eeb0..0ba4e10a5 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -52,7 +52,7 @@ if SITE == "localhost": SITE_FULL = 'http://' + SITE else: SITE_FULL = 'https://' + SITE -if SITE == 'pcmemes.net': CC = "SPLASH MOUNTAIN" +if SITE_NAME == 'PCM': CC = "SPLASH MOUNTAIN" else: CC = "COUNTRY CLUB" CC_TITLE = CC.title() @@ -993,8 +993,10 @@ for k, val in temp: if SITE_NAME != 'rDrama': AWARDS_DISABLED.append('progressivestack') -if SITE == 'pcmemes.net': - AWARDS_DISABLED.extend(['ban','pizzashill','marsey','bird','grass','chud','unblockable']) +if SITE_NAME == 'PCM': + # Previous set of disabled, changed temporarily by request 2022-10-17 + #AWARDS_DISABLED.extend(['ban','pizzashill','marsey','bird','grass','chud','unblockable']) + AWARDS_DISABLED.extend(['unblockable']) AWARDS_DISABLED.remove('ghost') elif SITE_NAME == 'WPD': AWARDS_DISABLED.remove('lootbox') @@ -1067,7 +1069,7 @@ if SITE == 'rdrama.net': 'carpathianflorist': CARP_ID, 'carpathian florist': CARP_ID, 'the_homocracy': HOMO_ID, - 'justcool393', JUSTCOOL_ID + 'justcool393': JUSTCOOL_ID } elif SITE_NAME == 'WPD': REDDIT_NOTIFS_SITE.update({'watchpeopledie', 'makemycoffin'}) diff --git a/files/helpers/offsitementions.py b/files/helpers/offsitementions.py index 149e671a6..0804714b0 100644 --- a/files/helpers/offsitementions.py +++ b/files/helpers/offsitementions.py @@ -36,13 +36,12 @@ def get_mentions(queries): mentions = [] for kind, query in itertools.product(kinds, queries): try: - data = requests.get(f'https://api.pushshift.io/reddit/{kind}/search?html_decode=true&q={query}&size=1', timeout=5).json()['data'] + # Special cases: PokemonGoRaids says 'Marsey' a lot unrelated to us. + # SubSimulatorGPT2 is just bots + data = requests.get(f'https://api.pushshift.io/reddit/{kind}/search?html_decode=true&q={query}&subreddit=!PokemonGoRaids,!SubSimulatorGPT2&size=1', timeout=5).json()['data'] except: break for i in data: - # Special case: PokemonGoRaids says 'Marsey' a lot unrelated to us. - if i['subreddit'] == 'PokemonGoRaids': continue - if kind == 'comment': body = i["body"].replace('>', '> ') text = f'

{body}

' diff --git a/files/helpers/wrappers.py b/files/helpers/wrappers.py index 0fe7ad857..0d5cbccb8 100644 --- a/files/helpers/wrappers.py +++ b/files/helpers/wrappers.py @@ -106,6 +106,11 @@ def auth_desired_with_logingate(f): v = get_logged_in_user() if app.config['SETTINGS']['login_required'] and not v: abort(401) + #### WPD TEMP #### disable this /logged_out thing on .co + if request.host == 'watchpeopledie.co': + return make_response(f(*args, v=v, **kwargs)) + #### END WPD TEMP #### + if not v and not request.path.startswith('/logged_out'): return redirect(f"/logged_out{request.full_path}") diff --git a/files/routes/awards.py b/files/routes/awards.py index 84c0a9b29..99d47524f 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -358,7 +358,7 @@ def award_thing(v, thing_type, id): if author.marsify: body = marsify(body) thing.body_html = sanitize(body, limit_pings=5) g.db.add(thing) - elif ("Femboy" in kind and kind == v.house): + elif ("Femboy" in kind and kind == v.house) or kind == 'rainbow': if author.rainbow: author.rainbow += 86400 else: author.rainbow = int(time.time()) + 86400 badge_grant(user=author, badge_id=171) diff --git a/files/routes/front.py b/files/routes/front.py index e33c140d9..f1d984267 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -17,7 +17,31 @@ from files.helpers.awards import award_timers @limiter.limit("3/second;30/minute;5000/hour;10000/day") @auth_desired_with_logingate def front_all(v, sub=None, subdomain=None): - + #### WPD TEMP #### special front logic + from files.helpers.security import generate_hash, validate_hash + from datetime import datetime + now = datetime.utcnow() + if request.host == 'watchpeopledie.co': + if v and not v.admin_level: # security: don't auto login admins + hash = generate_hash(f'{v.id}+{now.year}+{now.month}+{now.day}+{now.hour}+WPDusermigration') + return redirect(f'https://watchpeopledie.tv/logged_out?user={v.id}&code={hash}', 301) + else: + return render_template('wpdco.html') + elif request.host == 'watchpeopledie.tv' and not v: # security: don't try to login people into accounts more than once + req_user = request.values.get('user') + req_code = request.values.get('code') + if req_user and req_code: + from files.routes.login import on_login + user = get_account(req_user, graceful=True) + if user: + if user.admin_level: + abort(401) + else: + if validate_hash(req_code, f'{user.id}+{now.year}+{now.month}+{now.day}+{now.hour}+WPDusermigration'): + on_login(user) + return redirect('/') + return redirect('/logged_out') + #### WPD TEMP #### end special front logic if sub: sub = sub.strip().lower() if sub == 'chudrama' and not (v and v.can_see_chudrama): abort(403) diff --git a/files/templates/wpdco.html b/files/templates/wpdco.html new file mode 100644 index 000000000..b0d47b52e --- /dev/null +++ b/files/templates/wpdco.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + rip + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/schema.sql b/schema.sql index ab360bee7..35e03a6e7 100644 --- a/schema.sql +++ b/schema.sql @@ -1020,7 +1020,8 @@ CREATE TABLE public.users ( is_muted boolean DEFAULT false NOT NULL, coins_spent_on_hats integer DEFAULT 0 NOT NULL, rainbow integer, - spider integer + spider integer, + homoween_zombie character varying(7) DEFAULT 'HEALTHY'::character varying ); diff --git a/seed-db.sql b/seed-db.sql index 43c297b1c..b5fd3c60f 100644 --- a/seed-db.sql +++ b/seed-db.sql @@ -68,6 +68,8 @@ INSERT INTO public.badge_defs VALUES (163, 'Marsey Jacobs', 'Designed 10 hats!', INSERT INTO public.badge_defs VALUES (166, 'Giorgio Armarsey', 'Designed 250 hats 😲', NULL); INSERT INTO public.badge_defs VALUES (164, 'Marsey de Givenchy', 'Designed 50 hats, holy cap.', NULL); INSERT INTO public.badge_defs VALUES (180, 'Marsey Consoomer', 'Conned rDrama out of sick merch in exchange for a donation to Redbubble.', 1664417205); +INSERT INTO public.badge_defs VALUES (181, 'Z', 'Z', 1666073382); +INSERT INTO public.badge_defs VALUES (182, 'V', 'V', 1666074754); INSERT INTO public.badge_defs VALUES (168, 'BITTEN!', 'This user has been forcibly recruited to House Vampire', NULL); INSERT INTO public.badge_defs VALUES (170, 'Marsified', 'This user''s comments get Marsified automatically', NULL); INSERT INTO public.badge_defs VALUES (167, 'OwOified', 'This user''s comments get OwOified automatically', NULL); @@ -185,7 +187,7 @@ INSERT INTO public.badge_defs VALUES (134, '1 Year Old 🥰', 'This user has was -- Name: badge_defs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: - -- -SELECT pg_catalog.setval('public.badge_defs_id_seq', 180, true); +SELECT pg_catalog.setval('public.badge_defs_id_seq', 182, true); -- @@ -2259,6 +2261,7 @@ INSERT INTO public.marseys (name, author_id, tags, created_utc) VALUES ('marseypepe',2,'ok rightoid mellokind frog reaction',NULL), ('marseypepe2',2,'reaction frog mellokind',NULL), ('marseypepsi',2,'cola coke soda soft drink pop red white blue usa america',NULL), +('marseypeterson',2,'jordan b peterson professor intellectual chud rightoid incel twelve rules for life zoloft depressed antidepressant depression tired old smart',1666054938), ('marseypharaoh',2,'egyptian aevann pyramids',NULL), ('marseypharaoh2',2,'gods egyptian aevann animated',NULL), ('marseypharaohcat',2,'egyptian illuminati aevann pyramid sand ancient alien artifact museum history king cleopatra',NULL),