From 5c211807058406e747d200ef1a4f5fecb56c97df Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Mon, 25 Apr 2022 23:59:12 +0200 Subject: [PATCH] Revert "vxc" This reverts commit 4d0c7ba456d9cf13a2619f971ff4ceb7b98c9a5d. --- files/__main__.py | 20 ++++++++++---------- files/classes/sub.py | 4 ++-- files/classes/user.py | 4 ++-- files/helpers/const.py | 22 +++++++++++----------- files/helpers/discord.py | 10 +++++----- files/mail/__init__.py | 2 +- files/routes/admin.py | 4 ++-- files/routes/discord.py | 8 ++++---- files/routes/feeds.py | 2 +- files/routes/front.py | 2 +- files/routes/settings.py | 4 ++-- 11 files changed, 41 insertions(+), 41 deletions(-) diff --git a/files/__main__.py b/files/__main__.py index 7876ce70e..08d9553fa 100644 --- a/files/__main__.py +++ b/files/__main__.py @@ -23,25 +23,25 @@ app.jinja_env.cache = {} app.jinja_env.auto_reload = True faulthandler.enable() -app.config["SITE_NAME"]=environ.get("SITE_NAME") -app.config["GUMROAD_LINK"]=environ.get("GUMROAD_LINK", "https://marsey1.gumroad.com/l/tfcvri") +app.config["SITE_NAME"]=environ.get("SITE_NAME").strip() +app.config["GUMROAD_LINK"]=environ.get("GUMROAD_LINK", "https://marsey1.gumroad.com/l/tfcvri").strip() app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['DATABASE_URL'] = environ.get("DATABASE_URL", "postgresql://postgres@localhost:5432") app.config['SECRET_KEY'] = environ.get('MASTER_KEY') app.config["SERVER_NAME"] = environ.get("DOMAIN").strip() app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 3153600 -app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_NAME").lower() +app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_NAME").strip().lower() app.config["VERSION"] = "1.0.0" app.config['MAX_CONTENT_LENGTH'] = 8 * 1024 * 1024 app.config["SESSION_COOKIE_SECURE"] = True app.config["SESSION_COOKIE_SAMESITE"] = "Lax" app.config["PERMANENT_SESSION_LIFETIME"] = 60 * 60 * 24 * 365 -app.config["DEFAULT_COLOR"] = environ.get("DEFAULT_COLOR", "ff0000") -app.config["DEFAULT_THEME"] = environ.get("DEFAULT_THEME", "midnight") +app.config["DEFAULT_COLOR"] = environ.get("DEFAULT_COLOR", "ff0000").strip() +app.config["DEFAULT_THEME"] = environ.get("DEFAULT_THEME", "midnight").strip() app.config["FORCE_HTTPS"] = 1 app.config["UserAgent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36" -app.config["HCAPTCHA_SITEKEY"] = environ.get("HCAPTCHA_SITEKEY","") -app.config["HCAPTCHA_SECRET"] = environ.get("HCAPTCHA_SECRET","") +app.config["HCAPTCHA_SITEKEY"] = environ.get("HCAPTCHA_SITEKEY","").strip() +app.config["HCAPTCHA_SECRET"] = environ.get("HCAPTCHA_SECRET","").strip() app.config["SPAM_SIMILARITY_THRESHOLD"] = float(environ.get("SPAM_SIMILARITY_THRESHOLD", 0.5)) app.config["SPAM_URL_SIMILARITY_THRESHOLD"] = float(environ.get("SPAM_URL_SIMILARITY_THRESHOLD", 0.1)) app.config["SPAM_SIMILAR_COUNT_THRESHOLD"] = int(environ.get("SPAM_SIMILAR_COUNT_THRESHOLD", 10)) @@ -52,9 +52,9 @@ app.config["CACHE_REDIS_URL"] = environ.get("REDIS_URL", "redis://localhost") app.config['MAIL_SERVER'] = 'smtp.gmail.com' app.config['MAIL_PORT'] = 587 app.config['MAIL_USE_TLS'] = True -app.config['MAIL_USERNAME'] = environ.get("MAIL_USERNAME", "") -app.config['MAIL_PASSWORD'] = environ.get("MAIL_PASSWORD", "") -app.config['DESCRIPTION'] = environ.get("DESCRIPTION", "rdrama.net caters to drama in all forms such as: Real life, videos, photos, gossip, rumors, news sites, Reddit, and Beyond™. There isn't drama we won't touch, and we want it all!") +app.config['MAIL_USERNAME'] = environ.get("MAIL_USERNAME", "").strip() +app.config['MAIL_PASSWORD'] = environ.get("MAIL_PASSWORD", "").strip() +app.config['DESCRIPTION'] = environ.get("DESCRIPTION", "rdrama.net caters to drama in all forms such as: Real life, videos, photos, gossip, rumors, news sites, Reddit, and Beyond™. There isn't drama we won't touch, and we want it all!").strip() app.config['SETTINGS'] = {} r=redis.Redis(host=environ.get("REDIS_URL", "redis://localhost"), decode_responses=True, ssl_cert_reqs=None) diff --git a/files/classes/sub.py b/files/classes/sub.py index 471321da8..b1871bbcb 100644 --- a/files/classes/sub.py +++ b/files/classes/sub.py @@ -6,8 +6,8 @@ from os import environ from .sub_subscription import * from .sub_block import * -SITE_NAME = environ.get("SITE_NAME", '') -SITE = environ.get("DOMAIN", '') +SITE_NAME = environ.get("SITE_NAME", '').strip() +SITE = environ.get("DOMAIN", '').strip() if SITE == "localhost": SITE_FULL = 'http://' + SITE else: SITE_FULL = 'https://' + SITE diff --git a/files/classes/user.py b/files/classes/user.py index 83fe011c0..c65f351b5 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -23,8 +23,8 @@ from files.helpers.security import * import random from os import environ, remove, path -defaulttheme = environ.get("DEFAULT_THEME", "midnight") -defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all") +defaulttheme = environ.get("DEFAULT_THEME", "midnight").strip() +defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip() cardview = bool(int(environ.get("CARD_VIEW", 1))) class User(Base): diff --git a/files/helpers/const.py b/files/helpers/const.py index 80699217b..964e93756 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -6,8 +6,8 @@ from files.__main__ import db_session from files.classes.sub import Sub from files.classes.marsey import Marsey -SITE = environ.get("DOMAIN", '') -SITE_NAME = environ.get("SITE_NAME", '') +SITE = environ.get("DOMAIN", '').strip() +SITE_NAME = environ.get("SITE_NAME", '').strip() if SITE == "localhost": SITE_FULL = 'http://' + SITE else: SITE_FULL = 'https://' + SITE @@ -251,10 +251,10 @@ else: BUG_THREAD = 0 WELCOME_MSG = f"Welcome to {SITE_NAME}!" -IMGUR_KEY = environ.get("IMGUR_KEY") -PUSHER_ID = environ.get("PUSHER_ID", "") -PUSHER_KEY = environ.get("PUSHER_KEY", "") -DEFAULT_COLOR = environ.get("DEFAULT_COLOR", "fff") +IMGUR_KEY = environ.get("IMGUR_KEY").strip() +PUSHER_ID = environ.get("PUSHER_ID", "").strip() +PUSHER_KEY = environ.get("PUSHER_KEY", "").strip() +DEFAULT_COLOR = environ.get("DEFAULT_COLOR", "fff").strip() COLORS = {'ff66ac','805ad5','62ca56','38a169','80ffff','2a96f3','eb4963','ff0000','f39731','30409f','3e98a7','e4432d','7b9ae4','ec72de','7f8fa6', 'f8db58','8cdbe6', DEFAULT_COLOR} AWARDS = { @@ -696,13 +696,13 @@ discounts = { 73: 0.10, } -CF_KEY = environ.get("CF_KEY", "") -CF_ZONE = environ.get("CF_ZONE", "") +CF_KEY = environ.get("CF_KEY", "").strip() +CF_ZONE = environ.get("CF_ZONE", "").strip() CF_HEADERS = {"Authorization": f"Bearer {CF_KEY}", "Content-Type": "application/json"} WORDLE_LIST = ('aaron','about','above','abuse','acids','acres','actor','acute','adams','added','admin','admit','adopt','adult','after','again','agent','aging','agree','ahead','aimed','alarm','album','alert','alias','alice','alien','align','alike','alive','allah','allan','allen','allow','alloy','alone','along','alpha','alter','amber','amend','amino','among','angel','anger','angle','angry','anime','annex','annie','apart','apnic','apple','apply','april','areas','arena','argue','arise','armed','armor','array','arrow','aruba','ascii','asian','aside','asked','asset','atlas','audio','audit','autos','avoid','award','aware','awful','babes','bacon','badge','badly','baker','balls','bands','banks','barry','based','bases','basic','basin','basis','batch','baths','beach','beads','beans','bears','beast','beats','began','begin','begun','being','belle','belly','below','belts','bench','berry','betty','bible','bikes','bills','billy','bingo','birds','birth','bitch','black','blade','blair','blake','blame','blank','blast','blend','bless','blind','blink','block','blogs','blond','blood','bloom','blues','board','boats','bobby','bonds','bones','bonus','boobs','books','boost','booth','boots','booty','bored','bound','boxed','boxes','brain','brake','brand','brass','brave','bread','break','breed','brian','brick','bride','brief','bring','broad','broke','brook','brown','bruce','brush','bryan','bucks','buddy','build','built','bunch','bunny','burke','burns','burst','buses','busty','butts','buyer','bytes','cabin','cable','cache','cakes','calif','calls','camel','camps','canal','candy','canon','cards','carey','cargo','carlo','carol','carry','cases','casey','casio','catch','cause','cedar','cells','cents','chain','chair','chaos','charm','chart','chase','cheap','cheat','check','chess','chest','chevy','chick','chief','child','chile','china','chips','choir','chose','chris','chuck','cindy','cisco','cited','civic','civil','claim','clara','clark','class','clean','clear','clerk','click','cliff','climb','clips','clock','clone','close','cloth','cloud','clubs','coach','coast','cocks','codes','cohen','coins','colin','colon','color','combo','comes','comic','condo','congo','const','coral','corps','costa','costs','could','count','court','cover','crack','craft','craig','craps','crash','crazy','cream','creek','crest','crime','crops','cross','crowd','crown','crude','cubic','curve','cyber','cycle','czech','daddy','daily','dairy','daisy','dance','danny','dated','dates','david','davis','deals','dealt','death','debug','debut','decor','delay','delhi','delta','dense','depot','depth','derby','derek','devel','devil','devon','diana','diane','diary','dicke','dicks','diego','diffs','digit','dildo','dirty','disco','discs','disks','dodge','doing','dolls','donna','donor','doors','doubt','dover','dozen','draft','drain','rDrama','drawn','draws','dream','dress','dried','drill','drink','drive','drops','drove','drugs','drums','drunk','dryer','dubai','dutch','dying','dylan','eagle','early','earth','ebony','ebook','eddie','edgar','edges','egypt','eight','elder','elect','elite','ellen','ellis','elvis','emacs','email','emily','empty','ended','endif','enemy','enjoy','enter','entry','epson','equal','error','essay','essex','euros','evans','event','every','exact','exams','excel','exist','extra','faced','faces','facts','fails','fairy','faith','falls','false','fancy','fares','farms','fatal','fatty','fault','favor','fears','feeds','feels','fence','ferry','fever','fewer','fiber','fibre','field','fifth','fifty','fight','filed','files','filme','films','final','finds','fired','fires','firms','first','fixed','fixes','flags','flame','flash','fleet','flesh','float','flood','floor','flour','flows','floyd','fluid','flush','flyer','focal','focus','folks','fonts','foods','force','forge','forms','forth','forty','forum','found','frame','frank','fraud','fresh','front','frost','fruit','fully','funds','funky','funny','fuzzy','gains','games','gamma','gates','gauge','genes','genre','ghana','ghost','giant','gifts','girls','given','gives','glass','glenn','globe','glory','gnome','goals','going','gonna','goods','gotta','grace','grade','grain','grams','grand','grant','graph','grass','grave','great','greek','green','grill','gross','group','grove','grown','grows','guard','guess','guest','guide','guild','hairy','haiti','hands','handy','happy','harry','haven','hayes','heads','heard','heart','heath','heavy','helen','hello','helps','hence','henry','herbs','highs','hills','hindu','hints','hired','hobby','holds','holes','holly','homes','honda','honey','honor','hoped','hopes','horny','horse','hosts','hotel','hours','house','human','humor','icons','idaho','ideal','ideas','image','inbox','index','india','indie','inner','input','intel','inter','intro','iraqi','irish','isaac','islam','issue','italy','items','ivory','jacob','james','jamie','janet','japan','jason','jeans','jenny','jerry','jesse','jesus','jewel','jimmy','johns','joins','joint','jokes','jones','joyce','judge','juice','julia','julie','karen','karma','kathy','katie','keeps','keith','kelly','kenny','kenya','kerry','kevin','kills','kinda','kinds','kings','kitty','klein','knife','knock','known','knows','kodak','korea','label','labor','laden','lakes','lamps','lance','lands','lanes','lanka','large','larry','laser','later','latex','latin','laugh','laura','layer','leads','learn','lease','least','leave','leeds','legal','lemon','leone','level','lewis','lexus','light','liked','likes','limit','linda','lined','lines','links','linux','lions','lists','lived','liver','lives','lloyd','loads','loans','lobby','local','locks','lodge','logan','logic','login','logos','looks','loops','loose','lopez','lotus','louis','loved','lover','loves','lower','lucas','lucia','lucky','lunch','lycos','lying','lyric','macro','magic','mails','maine','major','maker','makes','males','malta','mambo','manga','manor','maple','march','marco','mardi','maria','marie','mario','marks','mason','match','maybe','mayor','mazda','meals','means','meant','medal','media','meets','menus','mercy','merge','merit','merry','metal','meter','metro','meyer','miami','micro','might','milan','miles','milfs','mills','minds','mines','minor','minus','mixed','mixer','model','modem','modes','money','monte','month','moore','moral','moses','motel','motor','mount','mouse','mouth','moved','moves','movie','mpegs','msgid','multi','music','myers','nails','naked','named','names','nancy','nasty','naval','needs','nepal','nerve','never','newer','newly','niger','night','nikon','noble','nodes','noise','nokia','north','noted','notes','notre','novel','nurse','nylon','oasis','occur','ocean','offer','often','older','olive','omaha','omega','onion','opens','opera','orbit','order','organ','oscar','other','ought','outer','owned','owner','oxide','ozone','packs','pages','paint','pairs','panel','panic','pants','paper','papua','paris','parks','parts','party','pasta','paste','patch','paths','patio','paxil','peace','pearl','peers','penis','penny','perry','perth','peter','phase','phone','photo','phpbb','piano','picks','piece','pills','pilot','pipes','pitch','pixel','pizza','place','plain','plane','plans','plant','plate','plays','plaza','plots','poems','point','poker','polar','polls','pools','porno','ports','posts','pound','power','press','price','pride','prime','print','prior','prize','probe','promo','proof','proud','prove','proxy','pulse','pumps','punch','puppy','purse','pussy','qatar','queen','query','quest','queue','quick','quiet','quilt','quite','quote','races','racks','radar','radio','raise','rally','ralph','ranch','randy','range','ranks','rapid','rated','rates','ratio','reach','reads','ready','realm','rebel','refer','rehab','relax','relay','remix','renew','reply','reset','retro','rhode','rider','rides','ridge','right','rings','risks','river','roads','robin','robot','rocks','rocky','roger','roles','rolls','roman','rooms','roots','roses','rouge','rough','round','route','rover','royal','rugby','ruled','rules','rural','safer','sagem','saint','salad','salem','sales','sally','salon','samba','samoa','sandy','santa','sanyo','sarah','satin','sauce','saudi','saved','saver','saves','sbjct','scale','scary','scene','scoop','scope','score','scott','scout','screw','scuba','seats','seeds','seeks','seems','sells','sends','sense','serum','serve','setup','seven','shade','shaft','shake','shall','shame','shape','share','shark','sharp','sheep','sheer','sheet','shelf','shell','shift','shine','ships','shirt','shock','shoes','shoot','shops','shore','short','shots','shown','shows','sides','sight','sigma','signs','silly','simon','since','singh','sites','sixth','sized','sizes','skill','skins','skirt','skype','slave','sleep','slide','slope','slots','sluts','small','smart','smell','smile','smith','smoke','snake','socks','solar','solid','solve','songs','sonic','sorry','sorts','souls','sound','south','space','spain','spank','sparc','spare','speak','specs','speed','spell','spend','spent','sperm','spice','spies','spine','split','spoke','sport','spots','spray','squad','stack','staff','stage','stamp','stand','stars','start','state','stats','stays','steal','steam','steel','steps','steve','stick','still','stock','stone','stood','stops','store','storm','story','strap','strip','stuck','study','stuff','style','sucks','sudan','sugar','suite','suits','sunny','super','surge','susan','sweet','swift','swing','swiss','sword','syria','table','tahoe','taken','takes','tales','talks','tamil','tampa','tanks','tapes','tasks','taste','taxes','teach','teams','tears','teddy','teens','teeth','tells','terms','terry','tests','texas','texts','thank','thats','theft','their','theme','there','these','thick','thing','think','third','thong','those','three','throw','thumb','tiger','tight','tiles','timer','times','tions','tired','tires','title','today','token','tokyo','tommy','toner','tones','tools','tooth','topic','total','touch','tough','tours','tower','towns','toxic','trace','track','tract','tracy','trade','trail','train','trans','trash','treat','trees','trend','trial','tribe','trick','tried','tries','trips','trout','truck','truly','trunk','trust','truth','tubes','tulsa','tumor','tuner','tunes','turbo','turns','tvcom','twice','twiki','twins','twist','tyler','types','ultra','uncle','under','union','units','unity','until','upper','upset','urban','usage','users','using','usual','utils','valid','value','valve','vault','vegas','venue','verde','verse','video','views','villa','vinyl','viral','virus','visit','vista','vital','vocal','voice','volvo','voted','votes','vsnet','wages','wagon','wales','walks','walls','wanna','wants','waste','watch','water','watts','waves','wayne','weeks','weird','wells','welsh','wendy','whale','whats','wheat','wheel','where','which','while','white','whole','whore','whose','wider','width','wiley','winds','wines','wings','wired','wires','witch','wives','woman','women','woods','words','works','world','worry','worse','worst','worth','would','wound','wrist','write','wrong','wrote','xanax','xerox','xhtml','yacht','yahoo','yards','years','yeast','yemen','yield','young','yours','youth','yukon','zones','gypsy','etika','funko','abort','gabby','soros','twink','biden','janny','chapo','4chan','tariq','tweet','trump','bussy','sneed','chink','nigga','wigga','caulk','putin','negus') -dues = int(environ.get("DUES")) +dues = int(environ.get("DUES").strip()) christian_emojis = (':#marseyjesus:',':#marseyimmaculate:',':#marseymothermary:',':#marseyfatherjoseph:',':#gigachadorthodox:',':#marseyorthodox:',':#marseyorthodoxpat:') @@ -790,13 +790,13 @@ def torture_ap(body, username): body = torture_regex2.sub(rf'\1@{username} is ', body) return body -YOUTUBE_KEY = environ.get("YOUTUBE_KEY", "") +YOUTUBE_KEY = environ.get("YOUTUBE_KEY", "").strip() ADMIGGERS = (37696,37697,37749,37833,37838) proxies = {"http":"http://127.0.0.1:18080","https":"http://127.0.0.1:18080"} -blackjack = environ.get("BLACKJACK", "") +blackjack = environ.get("BLACKJACK", "").strip() approved_embed_hosts = [ 'rdrama.net', diff --git a/files/helpers/discord.py b/files/helpers/discord.py index 0c756106d..695b635a8 100644 --- a/files/helpers/discord.py +++ b/files/helpers/discord.py @@ -3,11 +3,11 @@ import requests import threading from .const import * -SERVER_ID = environ.get("DISCORD_SERVER_ID",'') -CLIENT_ID = environ.get("DISCORD_CLIENT_ID",'') -CLIENT_SECRET = environ.get("DISCORD_CLIENT_SECRET",'') -BOT_TOKEN = environ.get("DISCORD_BOT_TOKEN",'') -AUTH = environ.get("DISCORD_AUTH",'') +SERVER_ID = environ.get("DISCORD_SERVER_ID",'').strip() +CLIENT_ID = environ.get("DISCORD_CLIENT_ID",'').strip() +CLIENT_SECRET = environ.get("DISCORD_CLIENT_SECRET",'').strip() +BOT_TOKEN = environ.get("DISCORD_BOT_TOKEN",'').strip() +AUTH = environ.get("DISCORD_AUTH",'').strip() def discord_wrap(f): diff --git a/files/mail/__init__.py b/files/mail/__init__.py index bfff4f8b6..e73326418 100644 --- a/files/mail/__init__.py +++ b/files/mail/__init__.py @@ -10,7 +10,7 @@ from files.classes import * from files.__main__ import app, mail, limiter from flask_mail import Message -name = environ.get("SITE_NAME") +name = environ.get("SITE_NAME").strip() def send_mail(to_address, subject, html): diff --git a/files/routes/admin.py b/files/routes/admin.py index 922e75ab5..c37cb03a5 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -18,8 +18,8 @@ from datetime import datetime import requests from urllib.parse import quote, urlencode -GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri") -GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "") +GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri").strip() +GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "").strip() month = datetime.now().strftime('%B') diff --git a/files/routes/discord.py b/files/routes/discord.py index 912678dd0..2160e6ede 100644 --- a/files/routes/discord.py +++ b/files/routes/discord.py @@ -4,10 +4,10 @@ from files.helpers.discord import add_role from files.__main__ import app import requests -SERVER_ID = environ.get("DISCORD_SERVER_ID",'') -CLIENT_ID = environ.get("DISCORD_CLIENT_ID",'') -CLIENT_SECRET = environ.get("DISCORD_CLIENT_SECRET",'') -BOT_TOKEN = environ.get("DISCORD_BOT_TOKEN") +SERVER_ID = environ.get("DISCORD_SERVER_ID",'').strip() +CLIENT_ID = environ.get("DISCORD_CLIENT_ID",'').strip() +CLIENT_SECRET = environ.get("DISCORD_CLIENT_SECRET",'').strip() +BOT_TOKEN = environ.get("DISCORD_BOT_TOKEN").strip() DISCORD_ENDPOINT = "https://discordapp.com/api/v6" WELCOME_CHANNEL="846509313941700618" diff --git a/files/routes/feeds.py b/files/routes/feeds.py index 5578990c3..4fa4e2c34 100644 --- a/files/routes/feeds.py +++ b/files/routes/feeds.py @@ -24,7 +24,7 @@ def feeds_user(v=None, sort='hot', t='all'): posts = get_posts(ids) - domain = environ.get("DOMAIN") + domain = environ.get("DOMAIN").strip() doc, tag, text = Doc().tagtext() diff --git a/files/routes/front.py b/files/routes/front.py index 59b773ec2..999ffbe86 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -4,7 +4,7 @@ from files.helpers.discord import * from files.__main__ import app, cache, limiter from files.classes.submission import Submission -defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all") +defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip() @app.post("/clear") @auth_required diff --git a/files/routes/settings.py b/files/routes/settings.py index 3a51c2749..8bb3228a1 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -13,8 +13,8 @@ from files.helpers.discord import add_role from shutil import copyfile import requests -GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "") -GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri") +GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "").strip() +GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri").strip() tiers={ "(Paypig)": 1,