Site script request/donation #124

WIP GitHub registration script

Added by jacobk 29 days ago. Updated 11 days ago.

Start date:
Due date:
% Done:


Estimated time:


I have written a work-in-progress GitHub registration script. I published the fix on GitHub because I can :>

Currently the fix is a bit complicated to use, and it is not very well tested. I plan to improve it to make it easier to use, but I wanted to let people know about it now since it does function, and you only need to create an account once.



Updated by koszko 29 days ago

Thanks, this has a potential to be very useful :)

Upon registering, have you noticed anything bad in GitHub's ToS that we should be aware of?

Btw, in cases where one mapping expects another to be installed (e.g. to make an iframe on some page functional), you can use the new "required_mappings" key in index.json to indicate that. This feature is available starting from Hydrilla 1.1 and Haketilo 2.0. It's my fault that I didn't document it on the wiki... Anyway, you can see (and I suppose you've already seen) an example here :)


Updated by jacobk 29 days ago

Strangely I don't remember GitHub asking me to agree to a terms of service. I did find a terms page [1], but there's a lot of pages, so I haven't read them all yet. The only thing I've noticed so far is that the GitHub Terms of Service [2] says "One person or legal entity may maintain no more than one free Account", which I definitely violated in testing (and, I've made multiple accounts for school before too, before I knew about free software). But of course that's not a problem inherent to the free software client, just something that's a bit more likely to occur when developing a client (Though, now that I know the launch code entry page doesn't require JavaScript, I can just test getting to that page, as getting to that page doesn't require actually accessing the email used.). I'll make another comment if I find something else more concerning in the terms.




Updated by jacobk 29 days ago

Oh also, thanks for the required_mappings example. For some reason I didn't think to look at Hacktcha for an example... For some reason I thought I would need multiple resources but then one mapping that links all of them, but I guess required_mappings is better because that means you can still install individual lower level components by themselves if you want (e.g. just the Octocaptcha).


Updated by koszko 27 days ago

jacobk wrote:

Oh also, thanks for the required_mappings example.

YW :)

Whether multiple payloads would actually suffice in this case - I don't know for sure. I can't find any evidence of Octocaptcha being used somewhere else... but you also have some code to integrate with funcaptcha. And this one seems to also be used by other websites, is that correct?


Updated by jacobk 26 days ago

I doubt there are other sites using Octocaptcha, as I think the name refers to the GitHub mascot, but it is possible to solve the Octocaptcha by itself for testing [1], and the URL has query strings with makes me think maybe some other parts of the site use Octocaptcha differently?

I think Octocaptcha is basically GitHub's custom frontend for FunCaptcha, so I think other sites do use FunCaptcha. If I remember correctly, Roblox uses FunCaptcha, but I think it's a different kind of FunCaptcha so I'm not sure if the code I have already written would carry over.

Also, for some reason I was unable to get Hydrilla to serve the GitHub scripts without upgrading to from Hydrilla 1.0 to Hydrilla 1.1b. Other packages seemed to work fine on 1.0.



Updated by koszko 25 days ago

Also, for some reason I was unable to get Hydrilla to serve the GitHub scripts without upgrading to from Hydrilla 1.0 to Hydrilla 1.1b.

The convenient "mapping_and_resource" was only added in 1.1b1. Well, it's only applicable to Hydrilla builder (the definitions it produces don't use such shortcuts), so serving stuff that was already built should also be possible with 1.0. Which is probably not very useful under local development setting since server requires exactly the same version of builder to be installed...


Updated by jacobk 11 days ago

With the current version of the fix, using the HTTPS Everywhere extension with "Encrypt All Sites Eligible" enabled will break the visual component of the script. I have not investigated why this happens yet. Firefox/Abrowser's built-in "HTTPS-Only Mode" does not seem to cause problems.


Updated by jacobk 11 days ago

Also, I've been occasionally running into a problem when updating fixes, in which Haketilo for some reason keeps requesting an old resource after downloading a new mapping, and removing the resource leads to getting a 404 when trying to install the fix (as the old resource is no longer in the build directory). Removing the mapping in Haketilo too does not seem to fix it, but neither does deleting and restoring the build directory, so I think the problem is with Haketilo.

I haven't seen this happen on my profile that only has Haketilo installed, so I can't say for sure that it's not the interference of another extension that's causing the problem, but it would be weird if it was another extension's fault since the requests are happening in the context of the extension and not a web page. If I catch it happening on Haketilo by itself, then I'll open a separate issue for it.


Updated by koszko 11 days ago

jacobk wrote:

so I think the problem is with Haketilo.

No, it's a problem with Hydrilla 😅

Browser caches some of the responses. It does not cache the ones that are generated dynamically with Python code but it can cache files served with flask's send_file() function. This line needs to be changed.

I experienced that bug before but didn't actually prioritize fixing it since the issue only manifests itself when running a development server of Hydrilla. So far I've been just using Ctrl+Shift+del Firefox shortcut to quickly clear the browser's cache

No need for you to create a new issue for it - I'll correct this behavior in the next release!

Also available in: Atom PDF