/lynxchan/ - LynxChan

The best engine you will ever shitpost with.

Mode: Reply
Name
Subject
Message

Max message length: 4096

Files

Max file size: 1.00 MB

Max files: 3

E-mail
Password

(used to delete files and postings)

Misc

Remember to follow the rules



(84.97 KB 811x647 cccp.jpg)
A GUI proposition Николай Кучумов 02/13/2019 (Wed) 17:45:42 Id:f0f324 No. 722
Hello.
I noticed you're developing a "fast" backend for an imageboard.
I'm a developer of a general-purpose GUI for an abstract imageboard.
Have a look at 4chan.org integration:
https://catamphetamine.github.io/chanchan/?chan=4chan
The project is hosted on GitHub:
https://github.com/catamphetamine/chanchan
If you're interested I could add support for `lynxchan` in that GUI.
Sure, go for it.
You can consult the documentation for the api on the doc directory.
There was a change on 2.2 that completely changed the api, tho, so take that in consideration.
(26.25 KB 300x100 1548688131725.gif)
>>722 Lynchan maker is a rude egotistical faggot who is too stupid to use ssl on lynxhub.com which puts everyone at risk of malicious injections. ON TOP of that is the fact that node.je is extremely unsafe in general, as is the mongo db. It is a honeypot and full of major security issues. Go ahead and work with the lynxchan maker... good luck with that. You will find out that he is a total faggot moron.
>>732
> Lynchan maker is a rude egotistical faggot who is too stupid to use ssl on lynxhub.com which puts everyone at risk of malicious injections. ON TOP of that is the fact that node.je is extremely unsafe in general, as is the mongo db. It is a honeypot and full of major security issues. Go ahead and work with the lynxchan maker... good luck with that. You will find out that he is a total faggot moron.
Okay.
Well, given that you're a software/security expert have you created an alternative software for people to shitpost with?
Node.js is a very good piece of software.
I'm a long-time Node.js developer myself.
I used to code with MongoDB when all the hype started in 2010 or so, but I soon realized that it was all marketing bullshit and just go and use the good-old PostgreSQL/MySQL and it will be fine.
I'm not an expert on database engines but I guess all that "NoSQL" hype has long time been gone and people (including me) resorted back to the traditional databases. You know, the ones created not for profit by the actual scientists in the actual lab coats in the actual university of Berkeley and such.

>>723
> Sure, go for it.
Ok, I will at some point.
Another thing I read about on the internets is this "Federated Network" thing.
https://www.youtube.com/watch?v=Kfp3I6ZTZT8
They have a project called "Mastodon" (like mstdn.jp):
https://www.youtube.com/watch?v=IPSbNdBmWKE
Perhaps you'd be interested in refactoring your chan engine to support this "ActivityPub" protocol so that people could deploy several chans that wouldn't disappear due to the lack of audience.
As I see it, "Federated Networks" make it seamless to read-from/post-to other deployments.
In case of chans it could be something like "Overchan" having "virtual" links to many boards which in fact are boards on other chans.
>>733
> I used to code with MongoDB when all the hype started in 2010 or so, but I soon realized that it was all marketing bullshit and just go and use the good-old PostgreSQL/MySQL and it will be fine.

Well, actually, if one remembers what was the scandal regarding MongoDB in those early years: people soon realized that its "blazing fast speed" was a result of prematurely inserting records, which means it didn't wait for the actual records to be committed to the disk driver (say, to the disk controller cache), instead it would just put the record into the insertion queue and return.
Which means that in the case of a system crash recent records would be lost.
Which is not a big deal for an imageboard if you think about it: crashes happen very rarely (if ever) and loosing a couple of shit posts in /b/ is not a catastrophe by any means.
In fact, the philosophy of an imageboard is that all messages are eventually lost so there's no issue in potentially loosing them prematurely.
So I'd say that MongoDB is actually a good choice, and I guess that's where the "50x" speed claim comes from (because SQL databases can't return from an insert operation prematurely due to being "ACID").
The author of lynxchan might as well include such rationale in the readme, otherwise people would frown at MongoDB (like the man above my comments).
As for Node.js, it's really good for IO-only operations and a chat or a forum is a canonical example of where Node.js is ahead of anything else like PHP.
Ideally, a modern chan would also provide WebSockets push for new messages notifications and that would mean Node.js too.
Node.js is good when handling a lot of concurrent connections and not calculating stuff which is the case for a social app.
ALL THE FAGGOTS WHO REPLIED FAILED TO ADDRESS THE MAIN ISSUE...THAT NODE JS AND MONGO AND LYNXCHAN HAVE TONS OF SECURITY FLAWS AND ARE WIDE OPEN TO ALL KINDS OF ATTACKS. GOOGLE "IS NODE JS SAFE" YOU FUCKING RETARDS. REPLY WITH SOMETHING WORTHWHILE OR SHUT THE FUCK UP. SUCK MY DICK.
LYNXCHAN IS UNSAFE ALL THE FAGGOTS WHO REPLIED FAILED TO ADDRESS THE MAIN ISSUE...THAT NODE JS AND MONGO AND LYNXCHAN HAVE TONS OF SECURITY FLAWS AND ARE WIDE OPEN TO ALL KINDS OF ATTACKS. GOOGLE "IS NODE JS SAFE" YOU FUCKING RETARDS. REPLY WITH SOMETHING WORTHWHILE OR SHUT THE FUCK UP. SUCK MY DICK.
Lynchan maker is a rude egotistical faggot who is too stupid to use ssl on lynxhub.com which puts everyone at risk of malicious injections. ON TOP of that is the fact that node.je is extremely unsafe in general, as is the mongo db. It is a honeypot and full of major security issues. Go ahead and work with the lynxchan maker... good luck with that. You will find out that he is a total faggot moron.
If you want security I suggest you leave for sshchan
http://ein.blue/
https://github.com/einchan/sshchan
(306.14 KB 593x540 798.png)
>>739
>11 commits
>python
>no mention of why lynxchan is not secure
Cute. I won't even delete it.
>>740 Says the faggot who is too stupid to use ssl on lynxhub.com which puts every single visitor to that site at risk of malicious code injections. Fucking faggot.
>>722
have you heard of 4 chan x
So, I'll stard adding support for lynxchan to the app because kohlchan.net has migrated to it recently.
I will post my progress in this thread.
I will also email the link to this thread to kohlchan author (Bernd) so that they could see the feedback.
For now, it seems to be working:
https://catamphetamine.github.io/chanchan/?chan=kohlchan

The easiest way for me would be not reading API docs but rather looking at the API output.

The API response format seems to be ok, but there're a couple of issues:

1. `message` seems to be not calculated correctly in some cases.

https://kohlchan.net/a/res/1501.html

"Get threads list" response for `a` board:

```
...,
{
...
markdown: "Bernd"
message: "Bernd↵<tinyboard hash>2314f7bf3c2aaee9cf470e0c49d3c508d2f63b04</tinyboard>"
...
}
```

2. I can see `signedRole: null` property (I guess it's the user's role like "administrator") on `posts` of a thread but I didn't see `signedRole` property on a thread itself or on a thread in a "/catalog.json" API response.

3. There seems to be no "the count of unique poster IP subnet hashes in the thread" stats (`unique_ips` for 4chan). Either the engine doesn't currently support it or `kohlchan` hasn't been configured for that feature yet.

https://kohlchan.net/kohl/res/13096.html

"/catalog.json" response (doesn't have unique IPs count property):

```
...,
{
autoSage: true
cyclic: false
fileCount: 58
flag: "/.static/flags/onion.png"
lastBump: "2019-06-20T10:50:35.672Z"
locked: false
markdown: "We switched to a different imageboard engine a few days ago.
<br>
<br>It&apos;s still early and a lot of things are subject to change. If you want to contribute to the frontend, check out:
<br>
<br>https://gitgud.io/Tjark/KohlNumbra
<br>
<br>https://gitgud.io/Tjark/KohlNumbra/issues"
message: "We switched to a different imageboard engine a few days ago.

↵It's still early and a lot of things are subject to change. If you want to contribute to the frontend, check out:

https://gitgud.io/Tjark/KohlNumbra

https://gitgud.io/Tjark/KohlNumbra/issues"
page: 1
pinned: true
postCount: 331
subject: "The next generation of Kohlchan 2"
threadId: 13096
thumb: "/.media/t_75d4dd507b413a172034f50e8488f70b-imagepng"
}
```

"Get thread" API response also doesn't have "unique IPs count" property.

4. There're no thumbnail dimensions in the `files` array.

An example of a `files` array entry:

```
mime: "image/png"
width: 976
height: 2584
size: 1757225
originalName: "AfD wählt sich versehentlich selbst aus Ausschuss.png"
path: "/.media/a6374dfa9a9547f7dd9205e7d7475827-imagepng.png"
thumb: "/.media/t_a6374dfa9a9547f7dd9205e7d7475827-imagepng"
```

5. Video attachments don't seem to have `duration`. I would suppose that's a non-trivial feature.

```
height: 640
mime: "video/mp4"
originalName: "Was auf KC wirklich geschah.mp4"
path: "/.media/4910cbe5facba30e2dbb15ce24540c37-videomp4.mp4"
size: 21740089
thumb: "/.media/t_4910cbe5facba30e2dbb15ce24540c37-videomp4"
width: 360
```

6. In `/catalog.json` API response there's no `creation` date property (only `lastBump`).

7. In `/catalog.json` API response there're no `files`, only `thumb` property.

8. What does `forceAnonymity: true` property on a thread mean? Does it mean that all comments left in the thread will be forced to not have their author name/role set?

9. Helmut: what's the difference between "redText" and "orangeText"? Why are there so many?
>>984
1: KC specific issue.

2: it can be on threads themselves. They can't be on catalog entries. Read the docs tbh.

3:correct, it isn't there.

4: correct, there isn't.

5: correct, there isn't.

6: correct, there isn't.

7: correct, there isn't.

8: it prevents any post in the board to not have the name. Does not prevent from having the signed role.
Another bug found: on `kohlchan.net` it seems to add a "carriage return" (U+000D) character before every "<br>" in `markdown`:

```
<strong>fett</strong>
<br><s>strike</s>
<br><em>italienisch</em>
<br><u>unterstrichen</u>
```

My workaround:
```
const rawComment = post.markdown.replace(/\u000d/g, '')
```
Another issue:

No `postCount` for threads in `/catalog.json` API response when they have no replies.

Analogous, no `fileCount` for threads in `/catalog.json` API response when they have no attachments in replies.
>>1002
Not really a bug, if you ask me. If it's consistent, it's easy to assume that no postCount means 0 postCount, same for fileCount.
Another issue: seems that the engine doesn't support `/boards.json` API URL.
It only outputs 10 "most active" boards in `/index.json`'s `topBoards`.
>>1046
boards.js?json=1
Any dynamic page have a json version available if you send the get parameter json.

Delete
Report/Ban

Captcha (required for reports and bans by board staff)


no cookies?