Implement Zig Forums into GUI/CLI application

you know Weboob, right? the project that implements websites into desktop applications with normal GUI
how about we make application to view and post on Zig Forums? as it's barely usable with web browser
it would have special functions, anti-censorship features, easy proxy and Tor support
we can also make it to support botnet imageboards that require javascript, to avoid their javascript, but reverse engineer it, similar to what youtube-dl is doing
we can make software to support other websites, so we can use them with our open source code instead of their javascript and current (((web browsers)))
we can make it support both GUI and CLI
we can also make reddit support. of course, our app will cut all advertisements, tracking and other jewery

Other urls found in this thread:

8ch.net/tech/res/1073100.json
youtu.be/O-q6J4Bqrg8
beakerbrowser.com
dat.foundation
cabal.chat
github.com/cabal-club/cabal-cli
github.com/beakerbrowser/fritter/blob/master/README.md
github.com/Rotonde
scuttlebot.io/more/protocols/secure-scuttlebutt.html
github.com/mafintosh/hypercore
vanjs-decentralized.hashbase.io/
datrs.yoshuawuyts.com
crates.io/crates/chan-downloader
twitter.com/AnonBabble

I'm currently working on something like that (actually posting from it right now), but it's really just a basic client that can post/read and track interesting threads. What exactly is "easy proxy and Tor support"? Your browser already has that. What kind of "anti-censorship" features are we talking about?
Reversing the API is really easy if you use the network tab of your browser's debugger, it's how I reversed Zig Forums's API (which is dogshit by the way).
jej

We can start by making the logo

do you keep it private or consider sharing with us? it would be better if we all used single application with same behavior

maybe just http/https/socks setting. or something better, like scraping proxy list from internet
proxy chain support?
also, displaying captcha in the app so you quickly type it

threads that you like or post in, would be recorded on disk and also archived on archive.fo. when app detects that posts were removed, it could notify you and show removed posts, or even automatically repost them. same if thread gets deleted, it could notify you and even repost entire thread

javascript/json API? application could use this API or it could do html parsing, behaving like web browser without javascript
do you consider sharing the API?

this joke is still funny
but the idea of this app is not something huge like
even one person can do something like this, but cooperation could be better, as there is more privacy if everyone will use same app with same fingerprint

The code is a shitty hack right now, especially on the display side, but there is no real reason I'd have to keep it private. I can upload it in a few days or so if you're interested.
Yeah. You don't fully get around parsing HTML because the API is chock-full of it, but at least you don't have to parse the entire thread page which is what the retarded site JS is doing and probably how CM didn't notice that user flags aren't shown in the API It's a miracle how this site stays up. If I remember correctly imitating a web browser perfectly is pretty difficult because it sends some very specific things. FF always reuses connections with no way to turn it off and some part of the request differs based on board settings which you'd have to look up in advance.
What does this mean? The API is public.

Yes, I have a CLI client and yes it supports images and writing posts in your editor of choice.
No, you can't have it.

Why don't you start of by posting a PoC, mister ideas man.

The problem with Zig Forums are its shitty content servers. The web frontend is easy to script and customize; it's the one good thing about this place.

Great idea, OP. Let's write it in Rust.
Please elaborate.
That's the job of the OS.

Can we document Zig Forums API?

yes but you can send those things too

application can do that too
but instead of unix brain damage by running wget or curl applications from your application, you have to use library

where


if you are the only user, it is likely that you have unique fingerprint, so they can record all of your posts


what's PoC?
I only know CoC. Let's start the project by writing Code of Conduct


why Rust

here

Mobile posting is gay as fuck, but to be honest I wish something like clover existed on my desktop. It's very comfy to have it remember where I left off in threads, what threads I follow, and keep track of my posts.

What if one of those things is for example the final position of some divs based on some manipulations done in javascript, or even the hash of a screenshot of the final rendered site which varies according to some elements which change every time you load the page? You would have to implement most of each web browser's functionality to imitate them.

LARP/10, the closest you'll find is Steam's fingerprinting script. Futaba uses that I think.

8ch.net/tech/res/1073100.json
4chan is the same. Reading is simple, but posting is more of a bother.

memory safety
thread safety
zero cost abstractions

What's the easiest way to load files from a server into a C application? What's the most minimal library you can use?

youtu.be/O-q6J4Bqrg8
Omg... Wtf2

LLVM cuckpiler

You can use mrustc to compile Rust to C and then use GCC.

What's event the point? The API isn't pure JSON but HTML-garbage inside of JSON.
How can anyone call that an API? It's two different formats stored inside of each other.
There is no way to interpret the HTML from Zig Forums more efficiently than to just do what the web browser does.
There's no point in having a desktop application for every fucking website.

Browsers are shit though, and Zig Forums requires an unreadable blob of javascript for many features like thread auto refreshing.

Set your browser cache to 0 and you get automatic refreshing in Links. XD

However manual refreshing only takes half the time without JS.

But you have to keep doing it yourself over and over. Auto refresh lets you automatically see when someone posts in any of the threads you have open. Same for catalog auto refresh.

A dedicated application could refresh automatically AND be optimized to do it fast.

It's not even real JSON, the DNSBLS captcha sends invalid garbage.

>at JSON.parse ()
>at :1:6
Holy shit, you're right.
I made an Zig Forums reader addon once but it just scrapped the site by parsing the HTML. I didn't even try parsing that crap.
That's some high level shitcoding going on here.

Lad, the servers are already slow as fuck. The images take forever to load. On some days the site isn't usable at all.
Imagine a bunch of faggots sitting in front of their devices with 70 tabs open on autoupdate.

Not my fault Zig Forums's API for getting information is complete fucking dog shit. I've asked for better and more optimized methods before (for example asking "has X been updated or not" and only requesting that shit if the answer is yes) but nobody is answering anything anymore. I'll keep my features even if I have to hack them together myself from sticks and stones (which I already did), I don't have the patience to refresh the page over and over when there's a conversation or to find out if there's new threads.

That's it! I'm writing my own imageboard in Rust. It will have no JavaScript. In fact it won't even have a frontend.

Waiting for that electron client.

I'm not sure what error that stack trace is about but it seems to be a different one, wew. I was referring to the {"captcha":true| one, note the | instead of a comma.

you clicked on the link at the bottom of the webpage and download the fucking source code. Niggers.

Come back Kekchan user wherever you are. You were never as annoying as these ni/g/gers.

Attached: kekchan.png (1240x811, 73.96K)

into the trash it goes

fuck off, not like the piece of shit is documented anyway.

post your shithub

user's recommendations for The Promised Chan:
- Separate the back end and front end into different projects
- The back end should communicate to clients or the front end with a dead-simple REST interface. Ultimately, all boards are just CRUD apps and don't need to be complicated.
- Use postgres. Mongo is a mistake.
- Allow servers to peer with each other and share content (like usenet) or federate with a common protocol (like ActivityPub). Distribution is the only hope. This prevents one major chan emerging and degenerating into 4chan.
- Your reference front-end implementation should be a web application with support for simple formatting. Markdown is very reasonable choice. This bespoke post formatting shit is just autism. God willing, other clients will follow suit.

I think you're probably just kidding, but image boards do need a restart. Everything has gotten so out of hand.

I said there will be no frontend. Each user has to write his own.
If by REST you mean conmunication encoded in JSON over HTTP endpoints you need to kill yourself. JSON is shit.
I'll make a Database abstraction so that you can use whatever you want.
Of course

That's a haskell map I believe.

My idea was exactly this. The backend should be a rest API only. In fact I started working on it then forgot about it. I'll return to it.

You probably need a reference implementation so people actually start using it before anyone commits the time to make a client.
So . . . protobuf? What is your plan, exactly? REST APIs are pretty common and there are a lot of tools to make writing clients for them easy.
An ORM seems like overkill for such uncomplicated queries, especially of you want it to be db-agnostic. An image board only needs about 4 endpoints for unprivileged users.


Post your git so we can contribute.

I had roughly similar idea, but I stopped after implementing simple server with multipart/form-data parser.
C with libfcgi, needed glib for some of the parsing.

Not sure if openIB still stores non-markdown post messages like vichan did but if they just returned that in the API instead of markdowned messages with html it would be a a little easier to work with. Maybe complain to CM on sudo?

Is there any reason why an HTTP REST API would be better than, say, NNTP? Because nntpchan is already a thing

nntp is garbage

Yes, there are much more and better quality tools available to make clients to consume REST APIs. These protocols don't exist in a vacuum. I'm not saying that servers doing literally everything over HTTP is a fundamentally good idea. It is a very common practice and there is a lot of information and libraries available on using them. If you go the extra mile and define an OpenAPI spec, then there are tools that will generate server and client stubs for you. For a project with 0 budget and volunteers, you need to leverage existing code as much as possible so you aren't writing clients from scratch.

Or to put it more bluntly, we're having this conversation over HTTP and not NNTP.

It's like 1000x better than any webshit though. Webshit is the niggest.

Yeah and it's massively bloated and need cuckflare(TM) to "server and protect" your webshit that can and will get DoS'd anyway and have the media server fall on its ass every fucking day. That's how great this webshit world is. It's trully fit only for niggers.

You're using it.

In Lynx, yeah. If it needed a modern browser, I wouldn't be here at all.
Webshit = modern web shit. The old web was fine.

You don't need a modern browser, JavaScript or even a browser at all to communicate with a REST API. The JSON is just a format that has become a de facto communication standard for structured data. Frankly, it's a lot nicer than XML. I'm not sure what you want. Websockets? RPC? SOAP? Why not just make a new image board by drawing dicks on paper and passing them as notes in class?

You should try gopherchan.

json is text. you can send data in binary format instead

well that's it then I guess. no weboob for me on linux or on windows, JUST.

how 2 lrn working with APIs? I know some shit-thon from school and I want to learn C but I still don't know where to start with APIs. I assumed it would be simple to make a command line client for a website like plebbit or something.

C won't get you far there, especially not for website APIs. You need a high-level scripting language (I use Common Lisp) and some (basic) knowledge about webshit. It also helps to know a bit about why certain shit APIs are shit in certain common ways.

Well, Common Lisp is not exactly a scripting language, but the focus was on high-level. Scripting languages just tend to be useful for this.

so stick with python most likely then? what if I want to build it into a standalone executable?

There exist tools for that. Why is that a criterion though?

Not necessarily required, would just be cool. If I were to make a command line client for a site I think it's possible that it could even be made to run under DOS which would be like a holy grail.

DOS support would more likely fail due to lacking support for the language you use.

This is the most subtle troll I've ever read on Zig Forums or you badly need to work on your fundamentals.


The menorah in the interpreter is really a nice touch.


I strongly recommend considering Go. Everything you want to do is supported by the standard library and you can learn the language in a week. I've basically replaced all my usage of Python with Go.

Python can definitely do what you want, but py2exe is definitely a hacky way to distribute. A setup.py is probably not that burdensome, though. You really only probably need Requests or Aiohttp and maybe BS4 and PIL as dependencies.

This is the most obvious troll I've ever read on Zig Forums. You badly need to work on your fundamentals.

fuck weboob, we don't have to make chan app as part of weboob


you can use any language you want. you can use C. but pajeet script languages might have some easy libraries to do the task


he can use language with DOS support


yes, it isn't. just because text also has binary representation (when saved to disk or transported) doesn't make it binary
try to encode some numbers or binary files (jpeg for example) as binary data, then as json data. compare if the result is the same

Python also has everything he needs. Go has (((Google))) compiler

Common Lisp is a language, CLISP is a (bad) implementation.

Did somebody say content sharing, CLI, distributed HTTP serving?

-eeks into convo, and plans to GTFO just as fast-

Have you neckbeardedfags heard of Beaker?
beakerbrowser.com

It uses the P2P dat:// protocol...
dat.foundation

It runs this really interdasting CLI discord/irssi clone; that if it had img upload capabilities and in-line threading, it would be one step closer to Olmec's Temple. Ironically, I think the Beaker P2P distributed app was called Cabal. (can't find the source repo/svn/git... but I know it's out there.)

Ah, I found it!
cabal.chat
github.com/cabal-club/cabal-cli

There is also Fritter.
github.com/beakerbrowser/fritter/blob/master/README.md

A dat p2p webring called Rotonde
github.com/Rotonde

SecureScuttlebutt w/ Scuttlebot & PrivateBox+SecretHandshake
scuttlebot.io/more/protocols/secure-scuttlebutt.html

hypercore
github.com/mafintosh/hypercore

Oh, and there is another minimalistic p2p distributed markdown CMS called 'solo.' Here is what I whipped up in 5 - 10 mins.
dat://9bef3d7ea8d06abb3543583abdd3b616f474d1128c802f618db674d0453c4ff8

Here's a cool sage-show on the distributed/p2p web.
vanjs-decentralized.hashbase.io/

Oh and did somebody say Rust? How about Dat Rust?
datrs.yoshuawuyts.com

Hope this helps devanons...

Attached: K87g4epr_400x400.jpg (600x609 11.45 KB, 24.34K)

crates.io/crates/chan-downloader

cringe

fuck off, spammer

It's literally the same garbage.

Attached: 5625601e3f3386dc7b3134d0ba06828814fbafde060f565179e1624134f51191.jpg (679x679, 71.09K)

Why don't you build a better, open-source alternative isntead of whining left and right? It's easy to destroy but difficult to build, isn't it, you want the easy way out.

Person of color. We need a person of color to design a proof of concept before we can begin. These are the diversity requirements of 2019.

What you're describing is essentially a bastardized version of IceCat, sprinkled with all the classic telltale signs of bloated garbage.

Omnichan, my dude. Take phone posting to the next level