I HATE THE GIT! I HATE THE GIT!

This commit is contained in:
Zergling_man 2021-09-18 21:37:18 +10:00
parent aa22a2b536
commit 696a557026
30 changed files with 1111 additions and 0 deletions

1
.gitignore vendored
View File

@ -138,3 +138,4 @@ dmypy.json
# Cython debug symbols # Cython debug symbols
cython_debug/ cython_debug/
rakka.conf

0
main/__init__.py Normal file
View File

3
main/admin.py Normal file
View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
main/apps.py Normal file
View File

@ -0,0 +1,5 @@
from django.apps import AppConfig
class MainConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'main'

View File

3
main/models.py Normal file
View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

24
main/pages/articles Normal file
View File

@ -0,0 +1,24 @@
Nettiquette and misc:
http://www.nohello.com
https://nohello.net/
https://sol.gfxile.net/dontask.html
https://dontasktoask.com/
http://slash7.com/2006/12/22/vampires/
http://xyproblem.info/
https://ncase.me/ballot
https://digdeeper.neocities.org/ghost/email.html
http://www.kanjidamage.com
https://innermantheatre.com/2021/03/29/lightspeed-lab-homosexuality/,The Christian stance on homosexuality in 3 panels
https://archive.secondspring.co.uk/articles/borruso.htm
Computers and languages are hard:
http://www.zompist.com/yingzi/yingzi.htm
https://gankra.github.io/blah/text-hates-you/
https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time
https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time
https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/
https://faculty.georgetown.edu/jod/texts/twain.german.html,Languages are angry
Otome! And maybe other game design:
https://uguucageoflove.wordpress.com/2020/05/17/preferences-of-otome-gamers-a-survey-of-japanese-players/

60
main/pages/contacts Normal file
View File

@ -0,0 +1,60 @@
Preferred:
zergling@rakka.tk,Email,mailto:zergling@rakka.tk,TODO
zergling_man@disroot.org,Email,mailto:zergling_man@disroot.org,Pending approval
Zergling_man@pod.rakka.tk,Diaspora,,No idea what I'm doing with this yet.
Zergling_man@rakka.tk,XMPP,xmpp:Zergling_man@rakka.tk,Not federating for some reason
<a rel='me' href='https://mastodon.linuxbox.ninja/@Zergling_man'>@Zergling_man@mastodon.linuxbox.ninja</a>,Mastodon/fediverse
Suitable:
zerglingman@fedora.email,Email,mailto:zerglingman@fedora.email
zergling@email.go.brr.rakka.tk,Email,mailto:zergling@email.go.brr.rakka.tk,"Backup account. <strong>Save this!</strong>
My comment box,Web,/comment,TODO
Zergling_man@irc.libera.chat,IRC
Zergling_man@irc.rizon.net,IRC
zerglingman,Steam,https://steamcommunity.com/id/zerglingman
@Zerglingman@freespeechextremist.com,Pleroma/fediverse,https://freespeechextremist.com/Zerglingman
@zergling.man:matrix.perthchat.org,Matrix,https://matrix.to/#/@zergling.man:matrix.perthchat.org,I kinda get it
Discouraged:
Zergling_man#9849,Discord
zergling.man42@gmail.com,Email,mailto:zergling.man42@gmail.com
Zergling_man@hotmail.com,Email,mailto:Zergling_man@hotmail.com
Zergling_man@irc.chat.twitch.tv,IRC,,yes, IRC
Wisknort@irc.mibbit.net,IRC
Zergling_man@irc.freenode.net,IRC
lazy to put,Codingame,,XMPP
Zergling_man,Mangadex,https://mangadex.org/user/419664/zergling_man
Wisknort,Favorite Words,https://favoritewords.com/public/7909804378
Wisknort,Disqus,https://disqus.com/by/wisknort/
<a rel='me' href='https://pawoo.net/@Zergling_man'>@Zergling_man@pawoo.net</a>,Mastodon/fediverse,,Mostly porn
@zergling_man@peertube.linuxrocks.online,Peertube/fediverse,https://peertube.linuxrocks.online/accounts/zergling_man/
zergling-man,Gitlab,https://gitlab.com/zergling-man
Curtis Smith,Patreon,https://www.patreon.com/user/creators?u=688598,I don't actually create anything
zergling-man,Github,https://github.com/zergling-man
zergling_man,Bandcamp,https://bandcamp.com/zergling_man
zerglingman,Facebook message,https://facebook.com/zerglingman
Ignored:
Zergling_man,Kickstarter,https://www.kickstarter.com/profile/zerglingman
04 7892 6251,Phone,tel:+61478926251
04 7320 1329,Phone,tel:+61473201329
Zerguch,Exhentai,,Don't search it if you don't know it
zerglingman,Facebook,https://facebook.com/zerglingman
@Zergling_man,Twitter,https://twitter.com/zergling_man
Wisknort@useast.battle.net,Battlenet 1.0,,probably dead
Wisknort@irc.gamesurge.net,IRC
Zergling_man@irc.quakenet.org,IRC
Zergling_man@irc.irchighway.net,IRC
zergling.man42@gmail.com,Hangouts
<a href='https://en.wikipedia.org/wiki/NakNak'>naknak</a>210,Neopets
zergling_man,Gelbooru,https://gelbooru.com/index.php?page=account&s=profile&id=286243,Content warning for site, not for kids
Zergling_man,XDA,https://forum.xda-developers.com/member.php?u=5421902,
@zergling_man,Ello,https://ello.co/zergling_man
zergling_man@hotmail.com,Skype
Curtis Smith,Linkedin,https://www.linkedin.com/in/curtis-smith-615538205/
Discontinued:
<a rel='me' href='https://openweb.social/@Zergling_man'>@Zergling_man@openweb.social</a>,Mastodon/fediverse,,Migrated to mastodon.linuxbox.ninja (see preferred)
Zerglingman,Xfire,,Rip btw
<a rel='me' href='https://social.quodverum.com/@Zergling_man'>@Zergling_man@social.quodverum.com</a>,Mastodon/fediverse,,Banned, no reason given. Quods is weird.
e1ff7b086b591c3bdc7cf74ffc46c38a023721c8386e46cf63ed3d7998020c6240d786bfa8a8,Tox

20
main/pages/free Normal file
View File

@ -0,0 +1,20 @@
<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>.

11
main/pages/index Normal file
View File

@ -0,0 +1,11 @@
<h2>Important announcement: <a href='https://letsencrypt.org/2020/11/06/own-two-feet.html'>this site will issue security warnings to android&lt;7.1.1, and other very old systems, starting Sept 1st 2021</a>. I will not be doing anything to change this.</h2>
<h3>we back boiz</h3>
<audio controls><source src='https://invidious.ethibox.fr/latest_version?id={0}&itag=140'/>ababababa</audio>
<p>Rakka me takkas and riddly me diddlies.</p>
<p>Welcome back, Ike. Farewell, Sly.</p><br/>
<p>This site is hosted in Tasmania, AU, by zerglingman (a fedora.email user), a Van Canto fan<del>girl</del> boy. Also available on matrix as @zergling.man:matrix.perthchat.org, or on libera.chat as Zergling_man or Mastodon as <a rel='me' href='https://mastodon.linuxbox.ninja/@Zergling_man'>@Zergling_man@mastodon.linuxbox.ninja</a> (<a href='/contact.php'>and many other places</a>). <br/><a href='/me'>But who am I, really?</a></p>
<p>Who <del>can't figure out how SSL works. I'm working on it. got SSL working, I guess.</del> is figuring this SSL thing out, properly.</p>
<p><a href='/webhost.php'>Haha I'm way too lazy for webhosting</a></p>
<p>Cool games: <a href='http://www.fantasystrike.com'>Fantasy Strike</a> (<strong>gone free! Go play it now!</strong>), <a href='http://www.soldak.com/Dins-Curse/Overview.html'>Din's Curse</a> (dirt cheap!), <a href='https://mwomercs.com/'>Mechwarrior Online</a> (free!), <a href='https://www.wurmonline.com/'>Wurm Online</a> (free!), <a href='https://www.chiark.greenend.org.uk/~sgtatham/puzzles/'>Portable Puzzle Collection</a> (free and open source! Also on <a href='https://f-droid.org/en/packages/name.boyle.chris.sgtpuzzles/'>android</a>!)</p>
<p>Cool bands: <a href='https://vancanto.de/en'>Van Canto</a> [<a href='https://vancanto.bandcamp.com/'>bandcamp</a>] (who this site is a shrine to), <a href='https://theocracymusic.com/'>Theocracy</a> [<a href='https://ulteriumrecords.bandcamp.com/'>label's bandcamp</a>] (Christian prog metal!), <a href='https://teramaze.com.au/'>Teramaze</a> [<a href='https://teramaze.bandcamp.com/'>bandcamp</a>] (Australian Christian prog metal!)
<p><del><a href='https://www.bigr.com/whisker-snot-arrow-rest-weatherproofing/208374.html'>Wisknort. Whisker snot.</a></del> They changed their website and now it sucks.</p>

20
main/pages/myroidbrowse Normal file
View File

@ -0,0 +1,20 @@
<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>

4
main/pages/myroids Normal file
View File

@ -0,0 +1,4 @@
<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>

14
main/pages/quotes Normal file
View File

@ -0,0 +1,14 @@
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

20
main/pages/redirects Normal file
View File

@ -0,0 +1,20 @@
adobe: https://www.patreon.com/posts/26834357
faplog: https://docs.google.com/spreadsheets/d/1sIh5evj1Janf_fdefbrksGLyHO_uMMDOjHJReA0P0fw/edit
fpdam: https://docs.google.com/document/d/1XSKSC9PYxAE1ys2u5ALD3wDBaps6LQgGe-GtyAju3q8/edit?usp=sharing
fpdb: https://docs.google.com/spreadsheets/d/1iJd8dBMbAKfwbfcWNnE-tElu4amJdtz4iMxWCxwKNY8/edit
fuckmeyourself: https://gelbooru.com/index.php?page=post&s=view&id=4608040
hitspark: https://images.squarespace-cdn.com/content/v1/5728734545bf2166bba67b00/1538785588130-I8WVGV947EEW81LII25S/ke17ZwdGBToddI8pDm48kODKEPcE7oOaZ-HX_UAJexAUqsxRUqqbr1mOJYKfIPR7LoDQ9mXPOjoJoqy81S2I8N_N4V1vUb5AoIIIbLZhVYy7Mythp_T-mtop-vrsUOmeInPi9iDjx9w8K4ZfjXt2dhV8WLpqAVTw2_ZfbaHHLLR7LAwPhjFlJ4O4wogcebl8m7cT0R_dexc_UL_zbpz6JQ/frame_advantage_5up.jpg?format=1000w
homo: https://innermantheatre.files.wordpress.com/2020/11/lightspeed-lab-ep.261-homosexuality.jpg
homo/s: https://innermantheatre.com/2021/03/29/lightspeed-lab-homosexuality/
nadeko: https://docs.google.com/spreadsheets/d/12ZpOI3coZHlSFQ7oFuo1HzbkTkgX8RBk06oeMM56HFQ/edit#gid=0
nlship: https://docs.google.com/document/d/1oVZSv7v8cePVu22qmbgkCUtm9LnUcSZIaQyH-3b_DhI/edit?usp=sharing
nlvn: https://docs.google.com/document/d/1tVVI2NAY_1vFLsMrbRzn18FiXNzZcDgdxnNXKHEFzTs/edit#
osscans: https://discord.gg/VStXkfm
ossd: https://drive.google.com/drive/folders/14xIZJER551zEB9rP9d655MdpRE0xDBW8
perm: http://nadekobot.readthedocs.io/en/latest/Permissions%20System/
rinbot: https://discordapp.com/oauth2/authorize?client_id=448458599673364481&scope=bot
sauce: https://discord.gg/gsUT8B
spook: https://rakka.tk/pics/SPOOKY/SCARY/SKELETONS/SEND/SHIVERS/DOWN/YOUR/SPINE/SHRIEKING/SKULLS/WILL/SHOCK/YOUR/SOUL/SEAL/YOUR/DOOM/TONIGHT/SPOOKY/SCARY/SKELETONS/SPEAK/WITH/SUCH/A/SCREECH/YOU'LL/SHAKE/AND/SHUDDER/IN/SURPRISE/WHEN/YOU/HEAR/THESE/ZOMBIES/SHRIEK/WE'RE/SO/SORRY/SKELETONS/YOU'RE/SO/MISUNDERSTOOD/YOU/ONLY/WANT/TO/SOCIALIZE/BUT/I/DON'T/THINK/WE/SHOULD/CAUSE_SPOOKY_SCARY_SKELETONS_SHOUT_STARTLING_SHRILLY_SCREAMS.gif
wou: https://discord.gg/8sc5m6R
WushuAT: https://docs.google.com/document/d/1wtJ6JCpmpr-ziAb0UR0OpW1tX7Ms5CiDFUQkjPgFzIE/edit?usp=drive_web&ouid=102857329945830311247
years: https://docs.google.com/spreadsheets/d/1p7NIoC2-o8BJvbLD5N1WazaFAtw4vto7bxJMGsarcgE/edit

355
main/pages/specs Normal file
View File

@ -0,0 +1,355 @@
jasmine
description: Desktop Computer
product: Z270-HD3 (Default string)
vendor: Gigabyte Technology Co., Ltd.
version: Default string
serial: Default string
width: 4294967295 bits
capabilities: smbios-3.0 dmi-3.0 smp vsyscall32
configuration: boot=normal chassis=desktop family=Default string sku=Default string uuid=1C021B03-0D04-9405-C806-9F0700080009
*-core
description: Motherboard
product: Z270-HD3-CF
vendor: Gigabyte Technology Co., Ltd.
physical id: 0
version: x.x
serial: Default string
slot: Default string
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: F2
date: 11/22/2016
size: 64KiB
capacity: 8128KiB
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi
*-memory
description: System Memory
physical id: 3d
slot: System board or motherboard
size: 16GiB
*-bank:0
description: [empty]
physical id: 0
slot: ChannelA-DIMM0
*-bank:1
description: [empty]
physical id: 1
slot: ChannelA-DIMM1
*-bank:2
description: DIMM DDR4 Synchronous 2133 MHz (0.5 ns)
product: CMK16GX4M1B3000C15
vendor: AMI
physical id: 2
serial: 00000000
slot: ChannelB-DIMM0
size: 16GiB
width: 64 bits
clock: 2133MHz (0.5ns)
*-bank:3
description: [empty]
physical id: 3
slot: ChannelB-DIMM1
*-cache:0
description: L1 cache
physical id: 43
slot: L1 Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-back unified
configuration: level=1
*-cache:1
description: L2 cache
physical id: 44
slot: L2 Cache
size: 1MiB
capacity: 1MiB
capabilities: synchronous internal write-back unified
configuration: level=2
*-cache:2
description: L3 cache
physical id: 45
slot: L3 Cache
size: 6MiB
capacity: 6MiB
capabilities: synchronous internal write-back unified
configuration: level=3
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
vendor: Intel Corp.
physical id: 46
bus info: cpu@0
version: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
serial: To Be Filled By O.E.M.
slot: U3E1
size: 4199MHz
capacity: 4200MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp cpufreq
configuration: cores=4 enabledcores=4 threads=4
*-pci
description: Host bridge
product: Intel Corporation
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 05
width: 32 bits
clock: 33MHz
*-display
description: VGA compatible controller
product: HD Graphics 630
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:125 memory:ee000000-eeffffff memory:d0000000-dfffffff ioport:f000(size=64) memory:c0000-dffff
*-generic UNCLAIMED
description: System peripheral
product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
vendor: Intel Corporation
physical id: 8
bus info: pci@0000:00:08.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msi pm cap_list
configuration: latency=0
resources: memory:ef04e000-ef04efff
*-usb
description: USB controller
product: 200 Series PCH USB 3.0 xHCI Controller
vendor: Intel Corporation
physical id: 14
bus info: pci@0000:00:14.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:122 memory:ef030000-ef03ffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 4.12.3-1-ARCH xhci-hcd
physical id: 0
bus info: usb@1
logical name: usb1
version: 4.12
capabilities: usb-2.00
configuration: driver=hub slots=16 speed=480Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 4.12.3-1-ARCH xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 4.12
capabilities: usb-3.00
configuration: driver=hub slots=10 speed=5000Mbit/s
*-communication
description: Communication controller
product: 200 Series PCH CSME HECI #1
vendor: Intel Corporation
physical id: 16
bus info: pci@0000:00:16.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=mei_me latency=0
resources: irq:124 memory:ef04d000-ef04dfff
*-storage
description: SATA controller
product: 200 Series PCH SATA controller [AHCI mode]
vendor: Intel Corporation
physical id: 17
bus info: pci@0000:00:17.0
version: 00
width: 32 bits
clock: 66MHz
capabilities: storage msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:123 memory:ef048000-ef049fff memory:ef04c000-ef04c0ff ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:ef04b000-ef04b7ff
*-pci:0
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #17
vendor: Intel Corporation
physical id: 1b
bus info: pci@0000:00:1b.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16
*-pci:1
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #19
vendor: Intel Corporation
physical id: 1b.2
bus info: pci@0000:00:1b.2
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:18
*-pci:2
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #20
vendor: Intel Corporation
physical id: 1b.3
bus info: pci@0000:00:1b.3
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:19
*-pci:3
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #21
vendor: Intel Corporation
physical id: 1b.4
bus info: pci@0000:00:1b.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16
*-pci:4
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #1
vendor: Intel Corporation
physical id: 1c
bus info: pci@0000:00:1c.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16
*-pci:5
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #3
vendor: Intel Corporation
physical id: 1c.2
bus info: pci@0000:00:1c.2
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:0
*-pci
description: PCI bridge
product: Integrated Technology Express, Inc.
vendor: Integrated Technology Express, Inc.
physical id: 0
bus info: pci@0000:06:00.0
version: 71
width: 32 bits
clock: 33MHz
capabilities: pci pm subtractive_decode bus_master cap_list
*-pci:6
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #5
vendor: Intel Corporation
physical id: 1c.4
bus info: pci@0000:00:1c.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16 ioport:2000(size=4096) memory:c0000000-c01fffff ioport:c0200000(size=2097152)
*-pci:7
description: PCI bridge
product: 200 Series PCH PCI Express Root Port #9
vendor: Intel Corporation
physical id: 1d
bus info: pci@0000:00:1d.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:16
*-isa
description: ISA bridge
product: 200 Series PCH LPC Controller (Z270)
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: isa bus_master
configuration: latency=0
*-memory UNCLAIMED
description: Memory controller
product: 200 Series PCH PMC
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 00
width: 32 bits
clock: 33MHz (30.3ns)
capabilities: bus_master
configuration: latency=0
resources: memory:ef044000-ef047fff
*-multimedia
description: Audio device
product: 200 Series PCH HD Audio
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=snd_hda_intel latency=32
resources: irq:127 memory:ef040000-ef043fff memory:ef020000-ef02ffff
*-serial
description: SMBus
product: 200 Series PCH SMBus Controller
vendor: Intel Corporation
physical id: 1f.4
bus info: pci@0000:00:1f.4
version: 00
width: 64 bits
clock: 33MHz
configuration: driver=i801_smbus latency=0
resources: irq:16 memory:ef04a000-ef04a0ff ioport:f040(size=32)
*-network
description: Ethernet interface
product: Ethernet Connection (2) I219-V
vendor: Intel Corporation
physical id: 1f.6
bus info: pci@0000:00:1f.6
logical name: enp0s31f6
version: 00
serial: 1c:1b:0d:94:c8:9f
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.2-4 ip=10.0.0.137 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:126 memory:ef000000-ef01ffff
*-power UNCLAIMED
description: To Be Filled By O.E.M.
product: To Be Filled By O.E.M.
vendor: To Be Filled By O.E.M.
physical id: 1
version: To Be Filled By O.E.M.
serial: To Be Filled By O.E.M.
capacity: 32768mWh

View File

@ -0,0 +1,7 @@
<nav>
<ul class='nav'>
<!-- This is just treated specially for now.-->
<li id="home" class="navpiece"><a href="/" class="navpiece">Home</a><div><a href="/free" class="navpiece">blep</a></div></li>
{% for naver in navs %}{% if naver.align != 2 %} <li id={{ naver.id }} class="navpiece {% if naver.align == 1 %}right{% endif %}"><a href="{{ naver.link }}" class="navpiece">{{ naver.text }}</a></li>
{% endif %}{% endfor %} </ul>
</nav>

View File

@ -0,0 +1,16 @@
{% load static %}<!DOCTYPE html>
<html lang='en-AU'>
<head>
<link rel="stylesheet" type="text/css" href="/static/main/theme.css">
<title>
Tas [] & Van Canto - {{ title }}
</title>
</head>
<body>
{{ nav }}
<main>
{% autoescape off %}{{ content }}{% endautoescape %}
</main>
<p class="foot">Page last updated {{ date }}</p>
</body>
</html>

3
main/tests.py Normal file
View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

28
main/urls.py Normal file
View File

@ -0,0 +1,28 @@
from django.urls import path, re_path
from . import views
urlpatterns=[
path('',views.index,name='idex'),
path('me.php',views.me,name='me2'),
path('me',views.me,name='me'),
path('contact.php',views.contact,name='contact2'),
path('contact',views.contact,name='contact'),
path('specs',views.specs,name='specs'),
path('vids.php',views.songs,name='songs2'),
path('songs',views.songs,name='songs'),
path('webhost.php',views.host,name='webhost2'),
path('webhost',views.host,name='webhost'),
path('free',views.free,name='free'),
path('myroids/',views.myroids,name='myroids2'),
path('myroids',views.myroids,name='myroids'),
path('myroids/browser',views.myroidbrowser,name='mybrowse'),
path('nerdshope',views.nerdshope,name='shop'),
path('syntax/',views.syntax,name='syntaxer2'),
path('syntax',views.syntax,name='syntaxer'),
path('teapot',views.teapot,name='teapot'),
path('toask',views.articles,name='articles'),
path('todd',views.todd,name='todd'),
re_path('r/(.*)',views.redirect,name='redirect'),
path('bikebunny',views.bikebunny,name='bikebunny'),
path('md.rss',views.md,name='md'),
]

11
main/utils/navs Normal file
View File

@ -0,0 +1,11 @@
books,/books.php,Books,2
songs,/songs,Songs,0
syntax,/syntax,Syntaxer,0
pics,/pics/,Pics,2
wargame,https://gitlab.com/zergling-man/Wargamer,Wargamer,0
rinbot,/r/rinbot,Rinbot,0
survey,/emojisurvey.php,Survey,2
myroids,/myroids,Myroids,0
bot,/bot,Bot chat,2
articles,/toask,Articles,0
contact,/contact,Contact,1

9
main/utils/song-ids Normal file
View File

@ -0,0 +1,9 @@
-f8V1QSf7yg
IvajtyyAN-s
rt4CQc1MSso
Kwz0Q8_q9yo
ry9CBDGsWtw
VQ1huQYHVUM
uJUWk01vV2E
S9QHgFtrgwE
BBFsTjMGQqo

163
main/views.py Normal file
View File

@ -0,0 +1,163 @@
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
import random as ra
import asyncio
from . import mdl
import functools
def rerender(funky):
@functools.wraps(funky)
def wrap(req,*args,**kwargs):
with open('main/utils/navs') as b:
navs=parsecat(b,4)
namednavs=[{'id':blah[0], 'link':blah[1], 'text':blah[2], 'align':int(blah[3])} for blah in navs['']]
out=funky(*args,**kwargs)
temp=loader.get_template('main/nav.html')
out['nav']=temp.render({"navs":namednavs},None)
return render(req, 'main/temp.html', out)
return wrap
def parsecat(file,n):
if not isinstance(file,str):
# Assume open handle
stuff=file.read()
else:
with open(f'main/pages/{file}') as b:
stuff=b.read()
cats=stuff.split('\n\n')
out={}
head=''
out['']=[]
for cat in cats:
if ':' in cat[:cat.index('\n')]:
# We have a category name
head,cat=cat.split('\n',1)
head=head[:-1]
out[head]=[]
else: head=''
for line in cat.split('\n'):
lin=line.split(',',n-1)
pad=n-len(lin)
lin.extend(['']*pad)
out[head].append(lin)
if out['']==[]: del(out[''])
return out
@rerender
def index():
with open('main/pages/index') as b:
stuff=b.read()
with open('main/utils/song-ids') as b:
raws=b.read()
ids=raws.split('\n')
stuff=stuff.format(ra.choice(ids))
return {'title':'Home','content':stuff,'date':'2021/07/24'}
@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=''):
if link: name=f"<a href='{link}'>{name}</a>"
if note: name=f"{name} ({note})"
return f"\n<li>{proto}: {name}</li>"
@rerender
def contact():
head="Certain people keep asking me about the best ways to contact me. So here they are, in rough order of most to least preferred. More to come as I remember them/feel like it<br/>"
out=parsecat('contacts',4)
out3=''
for k,v in out.items():
out2=f"\n<p><h4>{k}</h4>\n<ul>"
out2+='\n'.join([lii(*l) for l in v])
out2+="\n</ul></p>"
out3+=out2
return {'title':'Contact','content':head+out3,'date':'2021/08/13'}
def specs(req):
with open('main/pages/specs') as b:
return HttpResponse(b.read(), content_type="text/plain")
@rerender
def songs():
with open('main/utils/song-ids') as b:
raws=b.read()
ids=raws.split('\n')
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'}
@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
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'}
@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):
return HttpResponse("You're probably missing the joke.",status=418)
@rerender
def articles():
head="<p>Interesting/useful blog posts I've found.</p>"
arts=parsecat('articles',2)
out=[]
for k,v in arts.items():
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'}
@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):
with open('main/pages/redirects') as b:
lonks=b.read()
lonks=dict([n.split(': ',1) for n in lonks.split('\n')])
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):
loop=asyncio.get_event_loop()
feed=loop.run_until_complete(mdl.makefeed(req.GET.getlist('ids','')))
return HttpResponse(feed, content_type='application/rss+xml')

22
manage.py Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()

0
rakka/__init__.py Normal file
View File

16
rakka/asgi.py Normal file
View File

@ -0,0 +1,16 @@
"""
ASGI config for rakka project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
application = get_asgi_application()

123
rakka/settings.py Normal file
View File

@ -0,0 +1,123 @@
"""
Django settings for rakka project.
Generated by 'django-admin startproject' using Django 3.1.1.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""
from pathlib import Path
with open('rakka.conf') as argagarg:
conf={n.split('=',1)[0]:n.split('=',1)[1] for n in argagarg.read().split('\n')}
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = conf['SECRET_KEY']
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = bool(conf['DEBUG'])
ALLOWED_HOSTS = [n.strip() for n in conf['ALLOWED_HOSTS'].split(',')] # [127.0.0.1,::1,localhost]
# Application definition
INSTALLED_APPS = [
'main.apps.MainConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'rakka.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['rakka/templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'rakka.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.1/topics/i18n/
LANGUAGE_CODE = conf.get('LANGUAGE_CODE','en-us')
TIME_ZONE = conf.get('TIME_ZONE','UTC')
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/
STATIC_URL = '/static/'

24
rakka/urls.py Normal file
View File

@ -0,0 +1,24 @@
"""rakka URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
from . import views
urlpatterns = [
path('', include('main.urls')),
#path('', views.index,name='idex'),
path('admin/', admin.site.urls),
]

4
rakka/views.py Normal file
View File

@ -0,0 +1,4 @@
from django.http import HttpResponse
def index(request):
return HttpResponse("blep")

16
rakka/wsgi.py Normal file
View File

@ -0,0 +1,16 @@
"""
WSGI config for rakka project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
application = get_wsgi_application()

129
static/theme.css Normal file
View File

@ -0,0 +1,129 @@
body
{
/*part3*/
background-color: #9999ff;
margin: 0px;
padding: 0px;
}
nav
{
/*Positioning and no-scroll tricks*/
position: sticky;
top: 0px;
/*Stupid fix for a stupid bug*/
left: 0px;
width: 100%;
border: 1px solid;
display: inline-block;
background-color: #9999ff;
}
main
{
/*Another stupid fix for another stupid bug.
If you use position:fixed, it just vanishes from its original spot
and there's no standard syntax for telling it to not do this;
to leave a blank space where it was instead.*/
/*Yay, fixed by position:sticky*/
/*margin-top: 40px;*/
/*Hmm: https://www.w3schools.com/cssref/func_attr.asp*/
/* Made in 2 minutes (including login+open) to demonstrate efficiency
vs advanced libraries. Make of that what you will. */
background-color: #cccccc;
width: 80%;
margin-left: auto;
margin-right: auto;
border: 2px solid;
text-align: center;
}
main *
{
text-align: center;
}
ul.nav
{
list-style-type: none;
margin: 0;
padding: 0;
}
li.navpiece
{
/* Another stupid fix for YET ANOTHER stupid bug. This is how you vertically align text in an element.*/
max-width:100px;
display:table;
float:left;
position:relative;
}
a.navpiece, div.navpiece
{
text-decoration-line:none;
display: table-cell;
text-align: center;
vertical-align:middle;
font-size: 16px; /* This wasn't actually doing anything, apparently.*/
padding: 10px;
/*part1*/
color: #0000ff;
background-color: #cccccc;
}
/*a,a:hover
{
style: none;
color: inherit;
text-decoration: none;
}
I might need this again later, but for now, it's okay...*/
a.navpiece:hover
{
/*part2*/
background-color: #0000ff;
color: #cccccc;
}
li.navpiece>div
{
display:none;
position:absolute;
top:100%;
left:0%;
width:100%;
text-align:center;
}
li.navpiece:hover>div
{
display:inline;
}
li.right
{
float:right;
}
h1
{
text-align:center;
}
.foot
{
background-color: #cccccc;
float: right;
margin-left: auto;
margin-right: auto;
border: 2px solid;
text-align: center;
}