{"id":15510419,"url":"https://github.com/ananace/flist-sharp","last_synced_at":"2025-07-11T16:35:39.085Z","repository":{"id":143078634,"uuid":"49551461","full_name":"ananace/FList-sharp","owner":"ananace","description":"The F-Chat client of the future.","archived":false,"fork":false,"pushed_at":"2016-12-25T22:01:38.000Z","size":471,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T05:12:12.577Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ananace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-13T05:26:13.000Z","updated_at":"2025-01-05T23:04:58.000Z","dependencies_parsed_at":"2023-04-18T08:47:39.470Z","dependency_job_id":null,"html_url":"https://github.com/ananace/FList-sharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ananace/FList-sharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2FFList-sharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2FFList-sharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2FFList-sharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2FFList-sharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ananace","download_url":"https://codeload.github.com/ananace/FList-sharp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2FFList-sharp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264851740,"owners_count":23673293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T09:48:41.325Z","updated_at":"2025-07-11T16:35:39.053Z","avatar_url":"https://github.com/ananace.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"The F-Chat communication library of the future.\n====\n\nJust my version of a library for making bots and chat clients to F-Chat, no real such libraries exist after all.\n\nNote that this is still a ways away from being ready for prime-time use.\n\n\u003chr\u003e\nFList-sharp\n-----------\n\nA C# library for utilizing the F-List JSON API as well as FChat system.\n\n### Working\n\n- JSON API\n\t- Ticket aquiring.\n\t- Character data lookup.\n- FChat connection.\n\t- Auth \u0026 identification.\n\t- Message parsing.\n\t\t- Still lacking test data for a few message types.\n\t- Events.\n- Chat extension.\n\t- Channel management.\n\t- Character management.\n\t- Basic message routing.\n\n\n### TODO\n\n- Clean up FChat connection, make it more logical.\n\t- Connect should be split further into more functions.\n- Add in all the admin features.\n- Implement the last of the JSON API\n\t- Add V2 endpoint\n\n\n\u003chr\u003e\nConsoleMessenger\n----------------\n\n### Working\n\n- Basic UI.\n- Connection.\n- Basic ticket store.\n- Chatting.\n- Channel joining.\n- Automatic reconnection.\n- Basic settings.\n\n\n### TODO\n\n- ~~Redo channel buffer to actually calculate message sizes correctly.~~\n- ~~Proper scrolling of channel buffer.~~\n\t- Support scrolling back into log files.\n- Multi-line input box.\n- Finish up input handling.\n\t- ~~Cursor movement, delete, etc...~~\n\t- ~~Command history.~~\n\t- Tab-completion suggestions.\n- ~~Add logging support.~~\n- ~~Add userlist in some way. (Panel on the side?)~~ Preliminary implementation through `/who`\n- Add channel list window.\n- Finish status bar.\n\t- ~~Log channel activity.~~\n- ~~Add hilight system.~~\n- Add tab-completion for nicks in chat.\n- ~~Render chat messages properly.~~\n- Be more graceful on exits.\n- Improve UI.\n\t- Only redraw when strictly needed.\n\t- Use faster redrawing methods where applicable. (ChannelBuffer?)\n\t- Properly clean screen space when redrawing.\n\t- ~~Fix out-of-bounds assert in graphics when resizing.~~\n\n\n### Implemented Commands\n\n- `/channels` - List all the public channels. (Currently only downloads the list)\n- `/clear` - Clears the current chat.\n- `/clearall` - Clears all chats.\n- `/connect` - Connect to the network using an earlier retrieved ticket.\n- `/connect \u003cuser\u003e \u003cpassword\u003e` - Retrieve a ticket for the given account, then connect to the network.\n- `/join \u003cchannel\u003e` - Join an official channel.\n- `/joinp \u003cchannel\u003e` - Join a private channel.\n- `/list [public/private]` - Retrieve new lists of public (official) / private channels.\n- `/login \u003ccharacter\u003e` - Identify and log in to the network as the given character.\n- `/me \u003cmessage\u003e` - Send an emote message to the current channel.\n- `/me's \u003cmessage\u003e` - Send an emote message to the current channel.\n- `/em \u003cmessage\u003e` - Send an emote message to the current channel.\n- `/em's \u003cmessage\u003e` - Send an emote message to the current channel.\n- `/priv \u003ccharacter\u003e` - Start a private conversation with the given character.\n- `/prooms` - List all the private rooms. (Currently only downloads the list)\n- `/roll \u003cdice | 'bottle'\u003e` - Rolls the dice or spins the bottle.\n- `/set` - List all the settings along with their current values.\n- `/set \u003csetting\u003e` - Retrieves the given setting along with value.\n- `/set \u003csetting\u003e \u003cvalue\u003e` - Set the given setting.\n\n### Settings\n\n- `application.use_test_endpoint` - `bool`, default `true`; should the connection be to test or live?\n- `buffer.show_ads` - `bool`, default `true`; Should LFRP Ads be shown?\n- `buffer.show_messages` - `bool`, default `true`; Should regular chat messages be shown?\n- `buffer.messagetype` - `enum { ANSI, BBCode, Markdown, Plain }`, default `Plain`; How to render the messages?\n- `buffer.sys_timeout` - `double?`, default `null`; How long system messages should be shown for? Null disables.\n- `buffer.preview_timeout` - `double?`, default `null`; How long preview messages should be shown for? Null disables.\n- `buffer.bell_on_highlight` - `bool`, default `false`; Should a bell sound on highlights?\n- `buffer.max_messages` - `int`, default `100`; How many messages should be stored in scrollback?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fflist-sharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fananace%2Fflist-sharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fflist-sharp/lists"}