### Description
Completes #122
### Please confirm
- [x] I am the legal owner or represent the legal owner of all work submitted (including LLM-generated code, if any)
- [x] I consent to my changes being added to this FOSS project
- [x] I have confirmed that this does not add new errors or warnings with `utils/clippy.sh`
- [ ] This PR used LLMs to generate some or all of the code changes
Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/133
### Description
Closes#130
### Please confirm
- [x] I am the legal owner or represent the legal owner of all work submitted (including LLM-generated code, if any)
- [x] I consent to my changes being added to this FOSS project
- [x] I have confirmed that this does not add new errors or warnings with `utils/clippy.sh`
- [ ] This PR used LLMs to generate some or all of the code changes
Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/131
### Description
Closes#121
### Please confirm
- [x] I am the legal owner or represent the legal owner of all work submitted (including LLM-generated code, if any)
- [x] I consent to my changes being added to this FOSS project
- [x] I have confirmed that this does not add new errors or warnings with `utils/clippy.sh`
- [ ] This PR used LLMs to generate some or all of the code changes
Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/129
### Description
I previously removed the `buyable` flag handling in `list()` to resolve an issue where users couldn't see bots with the `buyable` flag set to 0 in the Arc adapter.
Looking back, this might have been a mistake. Because deletion in the Arc adapter sets the `buyable` flag to 0, newly uploaded bots also become undeletable.
Therefore, from a practical standpoint, it might be better to reinstate the `buyable` flag handling.
However, in this case, the problem of some bots not being displayed, as before, will reappear. Therefore, I think it's important to recommend setting the `buyable` flag to 1 for all bots in the Arc SQLite database from the start.
Therefore, this PR reintroduces the buyable flag.
Currently, it is possible for someone who later creates an account with the same name to delete older bots. The spoof_username feature, which is intended to prevent this, would otherwise apply to newly uploaded bots as well, making them undeletable. To address this, the scope of spoof_username has been limited to bots uploaded before 2025-01-23 (the last officially uploaded bots).
### Please confirm
- [x] I am the legal owner or represent the legal owner of all work submitted (including LLM-generated code, if any)
- [x] I consent to my changes being added to this FOSS project
- [x] I have confirmed that this does not add new errors or warnings with `utils/clippy.sh`
- [ ] This PR used LLMs to generate some or all of the code changes
Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/107
Co-authored-by: MaxSignal <kastera58@gmail.com>
Co-committed-by: MaxSignal <kastera58@gmail.com>