n4n0gh / 0xchan-frontend Goto Github PK
View Code? Open in Web Editor NEW0xchan is a decentralized and immutable message board system on the Ethereum blockchain where users can post messages and media files.
Home Page: https://0xchan.net
0xchan is a decentralized and immutable message board system on the Ethereum blockchain where users can post messages and media files.
Home Page: https://0xchan.net
Thanks to keep-alive, if a user expands the reverse image search on 2nd OP on /g/, it'll also be open on the 2nd OP on other boards.
Currently only used on Pages.vue component, also needs placement in Board.vue view.
Left click should inline-enlarge the image, middle click do it's regular thing.
Users can enable this to prevent files larger than n MB to be auto fetched even if SFW mode is turned off.
Reproduce:
npm run build
on current commit (ceb096c), run any http-server (i.e. http-server
), navigate to the site in your browser, then click on "settings" menu in top right corner and turn off the NSFW mode. The page will attempt a location.reload() which will fail.
Otherwise board selection retains last visited board which is then not clickable unless you visit another board first.
Also needs to be updated when going to a board/thread from the "recent posts" part.
can vuejs pass things into the scoped style tag of a component?
Use as alternative should no metamask be detected in the browser.
Issue is with Single.vue and the method in updated pushing a new URL to the router. Entering the address manually into the URL bar will provide the expected result of resolving the catalog view.
Calling the catalog or a single thread will still render all posts seen on page 1.
Current Nesting:
Board.vue
+------------------+
| Banner Component |
+------------------+
| New Button |
+------------------+
| <router-view> |
+------------------+
| Render Posts |
+------------------+
The currently mis-rendered child pages will now be put in the child's child to not overlap any further. Needs adjustment of router.js and new components.
Possible Nesting:
Board.vue
+------------------+
| Banner Component |
+------------------+
| <router-view> |
+------------------+
Content.vue (child route of board)
+---------------+
| New Button |
+---------------+
| <router-view> |
+---------------+
https://router.vuejs.org/guide/advanced/lazy-loading.html
Especially useful for all components using API calls on ethgasstation
Currently outlined in the whitepaper:
Users can award each other (you) tokens that can b e collected and later b e redeemed for cosmetic things. (you) don’t account for any additional stake nor can they b e traded or sold. Another way to thank users for a p ost would b e through an integrated donation function that engages a standard Ether transfer from the user clicking the button on 0xchan.net to the user that made the p ost where users can cho ose how much Ether will b e sent themselves. No Ether will be transferred to the 0xchan contract that way
However this bears a greater risk of making posts very traceable.
Two part documentation:
After building, the dynamic stylesheets from vue-head get imported as [object Object]
which obviously resolves to nothing, thus breaking theme functionality.
parse name before submitting, have a hash function run over the part after the # in the name field, replace everything from # onwards with !hashResult
4chan algo in js implement with npm package https://github.com/KenanY/tripcode
Move navigation items somewhere else if sidebar is hidden. Should be done via settings menu, not through a burger menu.
Dynamically check posts for various contents and manipulate the rendered output.
Parse posts for ">>n" where n = post number, create dynamic anchor link to n
Parse user input for certain things like [code] blocks and format them accordingly
Parse post for reply numbers and add ">>n" to the bottom of a single post card
:pepe_cringe:
Regular text should be converted to hex, then bitwise XOR against a repeating salt to keep the length -> then store on IPFS
Media files should be converted to base64, then hex, then bitwise XOR against a repeating salt to keep the length -> then store on IPFS https://codepen.io/AshV/pen/pjodjV
List to go by as per lainchan/lainchan#153 (comment)
[ ] search
[ ] sticky, lock , raw html
[ ] and delete, unsticky, sage, lock, move and edit
[ ] support for post formatting
[ ] support for reply linking
[ ] overboard extensions
[ ] is performant and secure
[x] word filters (see whitepaper)
[x] moderation dashboard
[x] new board creation
[x] uses database
[x] user management
[x] themes or extensions
[x] reporting system / log
[x] moderation log
[x] configuration editor
[x] name, email, subject, spoiler image, file ,oekaki
[x] trip codes
[x] banners support
[x] moderation actions
[x] image / file upload
[x] thumbnail image support
[x] ImgOps iqdb
[x] anonymous naming scheme
[x] board customization
[x] api probably 4chan api compatible or similar
[x] catalog extension
[x] recent posts
[x] css themes
[x] hackable (easy to extend, modify and customize)
[x] board aliases
wontadd:
[ ] customisable header support
[ ] keyboard navigation
[ ] word / phrase blocking
[ ] works with and without JavaScript
[ ] file / post deletion and password
[ ] ban appeals
[ ] ban list
[ ] board deletion and editing #wontfix
[ ] thread merge
[ ] auto IP note generation
[ ] multiple file upload using URLs
[ ] server side syntax highlighting #wontfix
What is the difference, feature and design wise, between 0xchan and these other repos?
Describe the bug
The icon/router-link to view a thread is rendered on every reply in board view. Clicking those results, obviously, in an empty result as the system will query threads matching the reply ID.
To Reproduce
Expected behavior
Icon should only be visible on the OP of a thread, not all subsequent replies.
tag line is specified on creation
can be overwritten for monies
harberger tax ensues
(credit to Troopy)
https://dzone.com/articles/harberger-taxes-on-ethereum
https://medium.com/@simondlr/what-is-harberger-tax-where-does-the-blockchain-fit-in-1329046922c6
(ping @simondlr once it's in lmao)
Webpack / VueJS / Babel has serious issues with Source-Maps on production build. Need to fix that for host deploy.
When hovering over post references (>>), show a hovering preview of the post that is being referenced.
Hello yes, I would like a blue bouncing cat theme thanks.
Describe the bug
When using NSFW mode and browsing the catalog of any board, the catalog viewer will try to display images even when no images where supplied in the OP.
To Reproduce
catalog
Expected behavior
It should behave like in SFW mode, where the container is ignored.
Add input to settings page for users to define the IPFS HTTP API endpoint they want to use, if one goes down.
If vuex has anything user-sided stored, it'll use that address to resolve the new HTTP API, if not it uses the provided HTTP API on 0xchan.org/net/com
Describe the feature you'd like to see
See title
Additional context
Right now users are being pushed to new locations without a clear visual understanding of what has happened.
a) modify this theme (selects custom theme and pre-fills textarea with content of theme user wants to modify)
b) auto-apply theme on select switch
Describe the bug
See title
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The board list should use the custom selection.
Additional context
When switching to "comfy mode" the board list is rendered properly.
Describe the bug
When using the comfy mode and creating a custom board list, the board list will not change.
To Reproduce
Expected behavior
Board list should adhere to the custom list, but doesn't.
Additional context
Issue stems from how the list is filtered in the regular view, where not needed boards are just applied a display: none;
style to hide them.
Proposed fix
Properly filter the list using methods instead of relying on CSS hacks.
We need to sanitize user input data on all fields before writing to smart contract / IPFS
https://www.npmjs.com/package/sanitize-html
Find out how i.e. line breaks are defined in textarea when written to JSON.
Building up on #26 there's an issue with the current encode and decrypt methods:
Encode returns the wrong hex representation for the characters:
⛧
e2 9b a7
26 e7
If users want to remove a certain board from the list, they should be able to do so by typing it like "-a" (to remove /a/). Should obviously be an OR to the current modus.
Add a function similar to tornado.cash but for posts. Also check out Aztec for this case.
https://tornado.cash/tutorial
https://www.aztecprotocol.com/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.