Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dramforever/danmacom
Turn danmaku into comments, in VSCode
https://github.com/dramforever/danmacom
Last synced: about 1 month ago
JSON representation
Turn danmaku into comments, in VSCode
- Host: GitHub
- URL: https://github.com/dramforever/danmacom
- Owner: dramforever
- License: isc
- Created: 2020-04-11T00:25:30.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-06-25T12:00:07.000Z (over 2 years ago)
- Last Synced: 2023-05-19T10:26:05.213Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 93.8 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Danmacom
## Features
Danmacom is an extension for livecoding in VSCode. It turns chat messages into
comments. Whenever a message like `/README:5 Test` appears, it finds a file with
a name that contains `README`, and puts a comment on the line `5`:![Image showing comment on line `5`](images/comment_demo.png)
It also gathers messages into a terminal, and puts a status bar icon which shows
the terminal on click, and also shows a 'notification count'. Click the icon or
press space or enter in terminal to clear the count.## Backend
Danmacom has a built-in backend for Bilibili, and can also use an external
program to receive messages. The protocol is considered internal, but it is
currently as follows:- `stderr` is logged but otherwise ignored
- Each line in `stdout` is parsed as JSON and should contain
- `author`: Name of the author
- `face`: URL to avatar icon
- `content`: Text of messageTo use the built-in Bilibili backend, use these settings, and use your room id
for `liveId`:```json
"danmacom.backend": "bilibili",
"danmacom.backendConfig": {
"liveId": 123456,
}
```To use the example external backend, use these settings, and use your room id
for the argument. `-u` is important to avoid buffering.```json
"danmacom.backend": "external",
"danmacom.backendConfig": {
"cmd": "python3 -u /path/to/danmaku.py 123456"
}
```## Chatroom usage
Starting a thread: `/keyword[:line] comment`
- `keyword` is any substring of file name, matched case-insensitively, and it
works as long as it uniquely identifies a file
- `line` is a line number, starting from 1
- If you specify a line number, the comment will be attached to that line.
Otherwise it's attached to the file.Example:
- `/README:5 This is a test` will put `This is a test` at line number `5` of the
file whose name has `README` in it
- `/README This is a test` will put the comment in the same file, but at the top
- `/README:1 This is a test` is also at the top of the file, but is considered a
separate thread.Threads: Each file/line comment or just file comment is assigned a thread, and a
thread is identified by a number. Threads are automatically created with its
first comment. You can see the thread number at the code lens of that line, or
in the opened comments view.To append to a thread, use `/num comment`, where `num` is all digits. (This
takes precedence over `/file comment`. If you really want to use an all-digits
keyword, use `/123:`.) Using an identical `/file` or `/file:line` has the same
effect as using the thread number.Examples
- `/1 This is a test` will append `This is a test` to thread `1`.