It appears to be working! Bunch of pages pushed to DB!

This commit is contained in:
Zergling_man 2021-10-10 00:57:44 +11:00
parent 476f1ca013
commit 7a7979d996
6 changed files with 0 additions and 122 deletions

View File

@ -1,20 +0,0 @@
<h2>On moving away from mainstream/centralised/closed-source software</h2>
<ol>
<li><strong>"The software is inconvenient to use"</strong><br/>
This is frankly not true in many cases. It's because the software is not familiar that people say this. Though there are definitely cases where it is true, but those are things that can be worked on - and will be if there's more interest to drive it.<br/>
And, to be clear, it's often <em>more</em> convenient than mainstream software, in little ways you didn't even realise were possible.</li><br/>
<li><strong>"Not many people are using it"/"there isn't much content there"</strong><br/>
If you can't see why this is obviously stupid, your use of a (pocket) computer is probably a liability, and I recommend deleting all your online accounts, selling your (pocket) computer, and going back to doing things in person.<br/>
If the above is relevant to you and you haven't stopped reading to go off and <a href="/contact">write an angry email to me</a> for insulting your intelligence: Reminder that there was a time when Facebook, Twitter and YouTube were not used by many people, and look where they are now. How did they get there? <em>People started using them</em>. This isn't a real objection.</li><br/>
<li><strong>"It's difficult for my grandma/little cousin/etc. to use it"</strong><br/>
This one tends to crop up most in response to self-hosting things (eg. federated nodes). And while there is truth in the idea that not everyone needs to run their own software, everyone should at least consider it, and tech people should definitely offer their instance to their friends and family. Because it's actually not that hard to use. It just takes someone familiar with it to teach and answer questions. So maybe, instead of complaining on someone else's behalf, be a teacher.</li><br/>
<li><strong>"It's less reliable"</strong><br/>
No.<br/>
Major services have outages too. Sometimes beyond their control (remember that time <a href="https://blog.cloudflare.com/cloudflare-outage/">Cloudflare accidentally blew up their entire operation</a>? - I'm actually not sure that link refers to the right incident, the one I recall was closer to a day long). This is actually worse than the case of a single (or handful of) node(s) in a federated network going offline, because it affects the entire service instead of only one small part of it. It's true that nodes sometimes disappear permanently, and that this doesn't tend to happen with major, centralised services. But it does happen with <em>minor</em> centralised services. G+, anyone?<br/><a href='https://www.ovh.com/world/news/press/cpl1787.fire-our-strasbourg-site'>Oh yeah remember this</a></li>
</ol><br/>
Some other variants of these arguments:<br/>
"It's human nature to prefer convenience" -> So's stealing your brother's toys. Really, you're just lazy.<br/>
"You'll never get popular appeal" -> You aren't everyone. You're lazy.<br/>
<br/>
If you have some argument that isn't in the above list, read it again, because chances are I sent this to you to read the part where I already addressed it. But if it's actually not on the list, <a href='/contact'>fix that</a>.

View File

@ -1,20 +0,0 @@
<h3>MCC in browser definitive (but not yet) guide</h3>
<h4>Part A: Getting a uuid</h4>
<p>If you don't want to share your phone login with the browser, just generate a uuid4. Should be tools online to do that for you.<br/>
If you do, wait until next maint, then select all text and look right down the bottom. It says something like agg:{idgoeshere}.<br/>
Or, skip this and parts B and C, and use a packet sniffer to collect the user agent directly. This will require a mitm proxy to decrypt the TLS packets, and that needs to be installed as a system certificate or MCC won't trust it (since android 7) and you'll get nothing at all. In short, this is hard and annoying, especialy without root (virtually impossible), so I don't really recommend it. It's also the only method that other guides offer.</p>
<h4>Part B: Token up</h4>
<p>AES encrypt the uuid. Use ECB encryption mode, set the secret key to 0123456789012345, and pad the uuid out to block size of 128, using PKCS5, or PKCS7 (they should be the same thing). You might be able to do this with an online tool, not sure.<br/>
Then base64 encode the result. Should be plenty of tools online to do that.
The result is your token.</p>
<h4>Part C: User agent</h4>
<p>Construct user agent string. Base form is {browser}/{country}/AMBITION_UA/GooglePlay/Android-/MOE_ver{ver}:{token}. Country appears to be ISO_3166-1 alpha-2. ver should be 30 currently (no idea when/how it increases, probably with each new client release).<br/>
Browser is... Whatever you want, really. If you want to try to pretend to be a real client, try something along the lines of "Mozilla/5.0 (Linux; Android 8.0.0; SHIFT6m Build/O00623; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36". If you don't, which does run the risk of a ban, just put something like "gimmedatmoe/9001".<br/>
Finished result should look something like this: TODO</p>
<h4>Part D: Browsing</h4>
<p>Use a user-agent switcher (get a plugin for it for your browser, lots of them out there) to set your user agent to that whole string above.<br/>
If it has the option for only doing it for some domains, set it to us-moe-app.amz-aws.jp. That's also where you will be going to play. If you got your user agent right, loading that URL should present you with the toppage ("see myroid"/"buy AP" page).</p>

View File

@ -1,4 +0,0 @@
<p>myroids! Stuff to come later.<br/>Game is Moe Can Change by Ambition.<br/>I'll be posting random tools I've written elsewhere in this folder soon. Probably I'll fix them up first to be less explosion-prone.</p>
<p>So I can't play. My phone randomly decided to fuck up my button remaps, so I installed xposed (among several other attempts) to try to fix it. Eventually found a good xposed package for it. Anyway, when I first installed it, MCC stopped loading. Gave me a blank white screen as soon as I open the app. Huh. Similar to the time I ran a "prevent DRM content playing" script, which appeared to affect nothing else. I undid it fine, but uninstalling xposed didn't. Hmm.</br>So I switched to <a href='https://anbox.io/'>anbox</a>, which meant no notifications, as I mentioned in my status. But then Manjaro switched stable kernel to <a href='https://github.com/anbox/anbox-modules/issues/49'>linux 5.7</a>. So I compiled my own version of 5.7 with the config options enabled, but binder still doesn't work, and it has no networking. I think I know why the latter occurs, but not how to fix it yet. So that's all TODO. I jumped back on 5.6 to update my status, but I'm going to keep using 5.7, (y'know, for continued support since 5.6 is EOL and) to try to force myself to sort this out properly.<br/>My new phone will probably show up before then.</p>
<p>So <a href='https://shop.shiftphones.com/shift6m.html'>new phone</a> arrived. I'm going to flash <a href='https://lineageos.org/'>Lineage</a> or something on it soon, but until then, I'll be doing a lot of packet sniffing of MCC to try and figure out how the login system works, so that I can make a custom (desktop) client for it. That's already started (or continued, since I did some in the past on my other phone), but it may take time to make sense of it all. <a href='/contact'>Help appreciated</a>.</p>
<p><a href='https://forum.shiftphones.com/threads/lineageos-15-1-android-8-1.1950/post-21579'>Haha I (probably) bricked it</a>. IS FIXED! Shift support are gods!</p>

View File

@ -1,14 +0,0 @@
Argy: A sprinting ninja with no taste whatsoever in music.
Crizzly: You look creepy when you glare into the soul of the viewer in the camera
LovelyJane: zergling i see you are being an insufferable prick as usual
Vintage Seinfeld DVD: Found "Wisknort", can't remember who he is but I remember him\nYou probably don't know 'em
i-58: pervling_man. It fits nicely. webcomic_man is a better summary
LanLingWang: a man with a temper with that of a women. a hermit who cares about mundane & worldly matters. a non flexible philosopher. unique indeed
Madao: how lazy you are?\nlazyman halolua its lazyman
Sayori's Bodyguard: i'm asking for english you australio-weeb
Yuko Yoshida: Whiskers looks like the embodiment of a discord admin
Quackerkats: i think whiskers has lost it lol
Danna: Who is zerg ? A guy who had a PA signature where he told a plant loli he wish he could show her more than her game
PonyPanda: I'm serious. I find you to be a very dull and unnecessary person.\nI don't want you to see my content. You're a parasite and unremarkable in every way.
The Thicc Earth Society: Asexual Programming Trap-Loving Hipster friend
WHY REMIX: you make your own life worse on purpose and complain to others when they aren't in as much pain as you. genuinely seek mental help, im not insulting or joking

View File

@ -3,22 +3,13 @@ from . import views
urlpatterns=[ urlpatterns=[
path('',views.index,name='idex'), path('',views.index,name='idex'),
path('me',views.me,name='me'),
path('contact',views.contact,name='contact'), path('contact',views.contact,name='contact'),
path('specs',views.specs,name='specs'), path('specs',views.specs,name='specs'),
path('songs',views.songs,name='songs'), path('songs',views.songs,name='songs'),
path('webhost',views.host,name='webhost'),
path('free',views.free,name='free'),
path('myroids',views.myroids,name='myroids'),
path('myroids/browser',views.myroidbrowser,name='mybrowse'),
path('nerdshope',views.nerdshope,name='shop'), path('nerdshope',views.nerdshope,name='shop'),
path('syntax',views.syntax,name='syntaxer'),
path('teapot',views.teapot,name='teapot'), path('teapot',views.teapot,name='teapot'),
path('toask',views.articles,name='articles'), path('toask',views.articles,name='articles'),
path('todd',views.todd,name='todd'),
re_path('r/(.*)',views.redirect,name='redirect'), re_path('r/(.*)',views.redirect,name='redirect'),
path('bikebunny',views.bikebunny,name='bikebunny'),
path('md.rss',views.md,name='md'), path('md.rss',views.md,name='md'),
path('todos',views.todo,name='todo'),
re_path('(.*)',views.autopage,name='everything'), re_path('(.*)',views.autopage,name='everything'),
] ]

View File

@ -56,15 +56,6 @@ def index():
stuff=stuff.format(ra.choice(ids)) stuff=stuff.format(ra.choice(ids))
return {'title':'Home','content':stuff,'date':'2021/09/20'} return {'title':'Home','content':stuff,'date':'2021/09/20'}
@rerender
def me():
with open('main/pages/quotes') as b:
stuff=b.read()
stuff={n[:n.index(': ')]:n[n.index(': ')+2:] for n in stuff.split('\n')}
lbn='\\n'
stuff='<br/>\n'.join([f'"{v.replace(lbn,"<br/>")}" - {k.replace(lbn,"<br/>")}' for k,v in stuff.items()])
return {'title':'Me','content':stuff,'date':'2021/08/26'}
def lii(name,proto,link='',note=''): def lii(name,proto,link='',note=''):
if link: name=f"<a href='{link}'>{name}</a>" if link: name=f"<a href='{link}'>{name}</a>"
if note: name=f"{name} ({note})" if note: name=f"{name} ({note})"
@ -94,33 +85,10 @@ def songs():
out='This is the full list of songs that can appear on the home page.<br/>'+'<br/>\n'.join([f'<a href="https://invidious.ethibox.fr/watch?v={idd}">https://invidious.ethibox.fr/watch?v={idd}</a>' for idd in ids]) out='This is the full list of songs that can appear on the home page.<br/>'+'<br/>\n'.join([f'<a href="https://invidious.ethibox.fr/watch?v={idd}">https://invidious.ethibox.fr/watch?v={idd}</a>' for idd in ids])
return {'title':'Songs','content':out,'date':'2021/05/06'} return {'title':'Songs','content':out,'date':'2021/05/06'}
@rerender
def host():
return {'title':'Webhost','content':"I want to do a fully-fledged hosting thing. Like offer an actual VPS. But that's a lot of effort, and I want to do things like \"you have a folder in your VPS that will show up on your custom subdomain\" and such. <strike>I have exactly zero idea how to make multiple subdomains point to a single computer though.</strike> So it turns out <strike>Apache</strike> actually just has a thing to do exactly that. But fuck Apache. nginx can do it too. TODO™",'date':'2021/05/06'}
@rerender
def free():
with open('main/pages/free') as b:
return {'title':'Not free beer','content':b.read(),'date':'2021/07/24'}
@rerender
def myroids():
with open('main/pages/myroids') as b:
return {'title':'#myroid:matrix.org','content':b.read(),'date':'2021/05/06'}
@rerender
def myroidbrowser():
with open('main/pages/myroidbrowse') as b:
return {'title':'#myroid:matrix.org','content':b.read(),'date':'2021/05/15'}
@rerender @rerender
def nerdshope(): def nerdshope():
return {'title':'Nerds\' Hope','content':"Store stuff. TODO. Will include inventory and budget. <a href='https://facebook.com/nerdshope'>FB</a><br/>Address is 21 Kensington St, Glenorchy<br/>Off dates 2021: 24th Sept, 29th Oct, 26th Nov<br/>Will be late on the 1st of Oct<br/>Not sure about 31st of Dec. Depends what other plans are made. I might host a NYE party that night.",'date':'2021/09/05'} return {'title':'Nerds\' Hope','content':"Store stuff. TODO. Will include inventory and budget. <a href='https://facebook.com/nerdshope'>FB</a><br/>Address is 21 Kensington St, Glenorchy<br/>Off dates 2021: 24th Sept, 29th Oct, 26th Nov<br/>Will be late on the 1st of Oct<br/>Not sure about 31st of Dec. Depends what other plans are made. I might host a NYE party that night.",'date':'2021/09/05'}
@rerender
def syntax():
return {'title':"What's that syntax?",'content':"<h1>What's that syntax?</h1><br/>A far-future goal, this will be a service for looking up strange bits of syntax you see in programs, that you're trying to find the name for so that you can search for that.<br/>Inspired by other lookup services like <a href='http://trace.moe'>What Anime is That?</a>, and more importantly, by C#'s <a href='https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers'>object initialiser</a>.",'date':'2021/05/06'}
def teapot(req): def teapot(req):
return HttpResponse("You're probably missing the joke.",status=418) return HttpResponse("You're probably missing the joke.",status=418)
@ -133,40 +101,17 @@ def articles():
out.append(f'<h4>{k}</h4>'+ '<br/>'.join([f'<a href="{l[0]}">{l[1] or l[0]}</a>' for l in v])) out.append(f'<h4>{k}</h4>'+ '<br/>'.join([f'<a href="{l[0]}">{l[1] or l[0]}</a>' for l in v]))
return {'title':'Articles','content':'<p>'+('</p><p>'.join(out))+'</p>','date':'2021/05/06'} return {'title':'Articles','content':'<p>'+('</p><p>'.join(out))+'</p>','date':'2021/05/06'}
@rerender
def todd():
out="""<p>Obviously, this started as a joke and turned into a fully-fledged shitpost. The invite link is <a href= 'https://discordapp.com/oauth2/authorize?client_id=544769594343292929&scope=bot'>here</a>, the culprit is Zergling_man#9849, and... It just spams, kinda. Every 10 minutes in every channel and once every time someone starts a message with a ., or mentions it. Don't forget to buy Skyrim. Try '.wake'!</p>
Credits:<p>Avatar cropped from <a href='https://en.wikipedia.org/wiki/File:ToddHoward2010sm.jpg'>this picture</a>,<br/>
repeating text created by 'Jade', and kept sic.<br/>
Flashrim pictures provided by Emperor Tang.<br/>
Portalrim gif provided by ColeFreeman72.<br/>
Animated memes gif provided by SakoArorim.<br/>
Phonedrop gif provided by Takamatsu.<br/>
Mugrim also provided by Takamatsu.<br/>
Racerim provided by Kotz<br/>
"provided by" indicates the content was not created by the person. If no creator is mentioned, they're unknown.</p>
<p>As of 2021-04-14, I've taken this bot offline forever and released the token (and code). If you see it online, it's not my doing, and I don't care if it gets me banned.</p>"""
return {'title':'It just works','content':out,'date':'2021/07/24'}
def redirect(req,src): def redirect(req,src):
with open('main/pages/redirects') as b: with open('main/pages/redirects') as b:
lonks=b.read() lonks=b.read()
lonks=dict([n.split(': ',1) for n in lonks.split('\n')]) lonks=dict([n.split(': ',1) for n in lonks.split('\n')])
return HttpResponse(status=302,headers={'Location':lonks[src]}) return HttpResponse(status=302,headers={'Location':lonks[src]})
@rerender
def bikebunny():
return {'title':'bikebunny','content':"I'm the rabbit-eared cyclist/bike bunny. And, well, the guy that wears blue bunny ears year-round (for now). This is my site. I live different, I encourage you to join me. <a href='/contact/'>Get in touch</a>.",'date':'2021/07/24'}
def md(req): def md(req):
loop=asyncio.get_event_loop() loop=asyncio.get_event_loop()
feed=loop.run_until_complete(mdl.makefeed(req.GET.getlist('ids',''))) feed=loop.run_until_complete(mdl.makefeed(req.GET.getlist('ids','')))
return HttpResponse(feed, content_type='application/rss+xml') return HttpResponse(feed, content_type='application/rss+xml')
@rerender
def todo():
return {'title':'Site TODOs','content':"Things to be done on the site:<br/><ul><li><strong><a href='/syntax'>Syntax checker</a></strong> - looking up syntax bits in different languages. Low priority.</li><li><strong>Become (opennic) DNS provider</strong> - strengthen Tasmania's infrastructure. Maybe become the authority for rakka.tk. Would be annoying without ip4. Anyway.</li><li><strong>Become arch/artix repository</strong> - Mostly just so I'm not constantly redownloading the same packgaes.</li><li><strong>Add DB</strong> - So that date modified is actually automatic kek</li></ul>",'date':'2021/09/21'}
@rerender @rerender
def autopage(page): def autopage(page):
p=Page.objects.get(url=page) p=Page.objects.get(url=page)