{"id":16654194,"url":"https://github.com/letmefly666/share1024","last_synced_at":"2025-10-30T15:31:11.737Z","repository":{"id":62310658,"uuid":"558164037","full_name":"LetMeFly666/Share1024","owner":"LetMeFly666","description":"力扣2022-1024马尔科夫链活动，卡牌分享网","archived":true,"fork":false,"pushed_at":"2023-04-04T12:14:01.000Z","size":139,"stargazers_count":4,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T10:21:26.021Z","etag":null,"topics":["1024","1024-markov-chain","django","leetcode","leetcode1024"],"latest_commit_sha":null,"homepage":"https://Share1024.LetMeFly.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LetMeFly666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-27T02:27:15.000Z","updated_at":"2023-08-12T13:38:20.000Z","dependencies_parsed_at":"2022-10-30T14:00:40.174Z","dependency_job_id":null,"html_url":"https://github.com/LetMeFly666/Share1024","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LetMeFly666%2FShare1024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LetMeFly666%2FShare1024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LetMeFly666%2FShare1024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LetMeFly666%2FShare1024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LetMeFly666","download_url":"https://codeload.github.com/LetMeFly666/Share1024/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238993435,"owners_count":19564805,"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":["1024","1024-markov-chain","django","leetcode","leetcode1024"],"created_at":"2024-10-12T09:49:01.225Z","updated_at":"2025-10-30T15:31:11.373Z","avatar_url":"https://github.com/LetMeFly666.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Share1024\n[力扣2022-1024马尔科夫链活动](https://leetcode.cn/2022-1024)，卡牌分享网，**当前正在搭建中**，后端服务可能只会运行到活动结束\n\n在这里，你可以领取任意你需要的卡牌，但是，你领取完别人的卡牌后**必须分享出来**。只有这样，才能实现卡牌的*可持续发展*\n\n在这里，**诚信至上，白嫖达咩** だめ\n\n此项目完全公益，**不盈利**\n\n因此，还请各位大佬手下留情，不要攻击我的低配服务器哦~\n\n## 文件结构说明\n\n```/docs/``` 文件夹其实为**前端页面**，Github pages 的 deploy from branch 不支持(root)和/docs之外的文件夹的自动部署\n\n```/back/``` 文件夹为后端代码，运行在我的服务器上\n\n### back\n\n**准备阶段：**\n\n1. 拥有一台具有公网ip并且已备案的服务器\n2. 服务器上配置好```Python```、```django```、```MySQL```（最好为这个项目单独创建一个用户，防止可能的漏洞导致其他数据库的数据泄露问题）\n3. 配置好例如Nginx等服务，以便将来自外网的访问转交给此服务进行处理。\n\n**配置阶段：**\n\n你需要在```/back/```文件夹下自己创建一```Secrets.py```，用于配置各种密码、令牌等。\n\n此文件需要包括：\n\n```python\n\"\"\"这个文件中的内容需要自己配置，打死也不要告诉他人哦\"\"\"\nSECRET_KEY = \"django-insecure-qs0quxd^b0a0#2+6cxv)qs)(f(fx=m9ri_5#ladh8x5)i#cgh+\"\nDATABASE_DBNAME = ''  # 数据库名称\nDATABASE_USER = ''  # 数据库用户名\nDATABASE_PASSWORD = ''  # 数据库密码\nDATABASE_HOST = ''  # 数据库服务器IP\nDATABASE_PORT = 3306  # 数据库端口\nEMAIL_SENDER_NAME = \"Tisfy@qq.com\"  # 邮件发送者邮箱\nEMAIL_SENDER_PASSWORD = \"LeetCode2022-1024Share\"  # 邮件发送者密码\n\n```\n\n**启动服务：**\n\n首次启动服务需要执行命令：\n\n```bash\npython manage.py makemigrations\npython manage.py migrate\n```\n\n之后仅需运行\n\n```bash\npython manage.py runserver\n```\n\n## 接口说明\n\n以下说明了后端为前端提供的各种接口，我提供这些接口是为了方便用户写程序去调用（比如卡牌监控等），但是请注意调用频率，不要对服务器照成太大的压力。推荐频率：1次/秒（蒟蒻的服务器不抗揍）\n\n### /user/baseInfo/\n\n获取用户基本信息\n\n**方法**\n\nPOST\n\n**请求**\n\ndata\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\"\n}\n```\n\n**返回**\n\n若未登录：\n\n```json\n{\"login\": false}\n```\n\n若已登录：\n\n```json\n{\n    \"username\": \"tisfy\",\n    \"cardNotShare\": \"\"  // 是否有领取但为传递的卡牌。如果无，则为空；如果有，则为卡牌ID\n}\n```\n\n### /user/cards/\n\n获取用户卡牌信息\n\n**方法**\n\nGET\n\n**请求**\n\ndata\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\"\n}\n```\n\n**返回**\n\n若未登录，则返回的各种卡牌都为空列表\n\n若已登录，则返回\n\n```json\n{\n    \"shared\": [123, 542],  // 所分享的卡牌ID\n    \"got\": [120, 521],  // 所领取的卡牌ID\n    \"error\": [542],  // 被报失效的卡牌\n}\n```\n\n### /user/login/\n\n**方法**\n\nPOST\n\n**请求**\n\ndata\n\n```json\n{\n    \"username\": \"tisfy\",\n    \"password\": \"LeetCode2022-1024Share\"\n}\n```\n\n**返回**\n\n若登录成功\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\"\n}\n```\n\n否则\n\n```json\n{\n    \"warrant1024\": \"\",\n    \"message\": \"Username or password wrong\"\n}\n```\n\n其中，message当前支持：\n\n+ 账号或密码为空：```There isn't a username or password in the request```\n+ 账号或密码不正确：```Username or password wrong```\n+ 该账号不存在：```No such user```\n\n### /user/logout/\n\n**方法**\n\nPOST\n\n**请求**\n\ndata\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\"\n}\n```\n\n**响应**\n\n```json\n{\n    \"response\": \"ok\"\n}\n```\n\n### /user/register/\n\n**请求**\n\ndata\n\n```json\n{\n    \"username\": \"tisfy\",\n    \"password\": \"LeetCode2022and1024Share\",\n    \"email\": \"Tisfy@qq.com\",\n    \"code\": \"1234\",  // 邮箱验证码\n}\n```\n\n**返回**\n\n若注册成功\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\"\n}\n```\n\n否则\n\n```json\n{\n    \"warrant1024\": \"\",\n    \"message\": \"Verification Code unavailable\"\n}\n```\n\n其中，message当前支持：\n\n+ 用户名不合法：```Username unavailable```\n+ 邮箱不合法：```Email unavailable```\n+ 密码不合法：```Password unavailable```\n+ 验证码不正确：```Verification Code unavailable```\n\n### /user/register/sendCode/\n\n**方法**\n\nPOST\n\n**请求**\n\ndata\n\n```json\n{\n    \"email\": \"Tisfy@qq.com\"\n}\n```\n\n**返回**\n\n若成功\n\n```json\n{\n    \"response\": \"ok\"\n}\n```\n\n否则\n\n```json\n{\n    \"response\": \"\",\n    \"message\": \"Request too fast\"\n}\n```\n\n其中，message当前支持：\n\n+ 发送过于频繁：```Request too fast```\n+ 邮件地址不合法：```Email unavailable```\n+ 其他原因的邮件发送失败：```Email send failed```\n\n### /card/remain/all/\n\n获取有多少张未被领取完的卡牌\n\n**方法**\n\nGET\n\n**返回**\n\n返回所有卡牌的未被领取数量（一张卡牌最多算一次）\n\n```json\n{\n    \"0\": 21,\n    \"1\": 50,\n    // ...\n}\n```\n\n### /card/remain/typeAndID/\n\n获取所有有剩余的卡牌，按ID排列\n\n**方法**\n\nGET\n\n**返回**\n\n```json\n{\n    \"125\": \"007\"  // \"卡牌ID\": \"卡牌种类\"\n}\n```\n\n### /card/remain/oneType/?cardType={卡牌类型}\n\n返回某（一）种卡牌的所有未被领取的卡牌的ID\n\n注意，```\u0026```在此处被编码为```AND```\n\n**方法**\n\nGET\n\n**示例**\n\n```\n/card/remain/oneType?cardType=007\n```\n\n**返回**\n\n```json\n{\n    \"cards\": [125, 129, 510, 515]\n}\n```\n\n### /card/oneCard/?cardID={卡牌ID}\n\n返回某张卡牌的具体信息\n\n**方法**\n\nGET\n\n**返回**\n\n若获取成功\n\n```json\n{\n    \"cardID\": 125,\n    \"cardType\": \"007\",\n    \"shareBy\": \"tisfy\",  // 分享者\n    \"get1\": 1,  //    |- 0：待领取    \n    \"get2\": 2,  // ---|  1：已领取\n    \"get3\": 0,  //    |- 2：被报无效\n    \"gotTimes\": 2,  // 也能由get123求得\n    // 注意，这里不包含力扣的卡牌领取链接，白嫖达咩\n}\n```\n\n若获取失败\n\n```json\n{\n    \"cardID\": 0,\n    \"message\": \"Card doesn't exist\"\n}\n```\n\n其中，message当前支持：\n\n+ 卡牌不存在：```Card doesn't exist```\n\n### /card/oneCard/getURL/\n\n领取一张卡牌\n\n**方法**\n\nPOST\n\n**请求**\n\ndata:\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\",\n    \"cardID\": 1221\n}\n```\n\n**返回**\n\n正常：\n\n```json\n{\n    \"leetcodeURL\": \"https://leetcode.cn/2022-1024?id=1111111\u0026userSlug=tisfy\"\n}\n```\n\n若未登录：返回```{\"leetcodeURL\": \"\", \"message\": \"Please login first\"}```\n\n若登录且有未传递的卡牌：返回```{\"leetcodeURL\": \"\", \"message\": \"Please share back what you got\", \"shouldGo\": \"card1.html?cardID=555\"}```\n\n若卡牌为空或不存在：返回```{\"leetcodeURL\": \"\", \"message\": \"Card doesn't exist\"}```\n\n若卡牌被领完：返回```{\"leetcodeURL\": \"\", \"message\": \"Too late, all cards were taken\"}```\n\n### /card/share/\n\n分享一张卡牌（未判断传递卡牌和原始卡牌是否相同）\n\n**方法**\n\nPOST\n\n**请求**\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\",\n    \"parent\": \"\",  // 若为领取后的传递而不是直接分享，则parent为空串；否则parent为领取自的卡牌  // 若parent的ID不合法，则默认为直接分享\n    \"leetcodeURL\": \"https://leetcode.cn/2022-1024?id=1111111\u0026userSlug=tisfy\",  // 力扣卡牌分享链接\n    \"type\": \"007\",  // 卡牌类型\n    // \"remain\": \"3\"  // 这张卡牌还剩几张（默认为3），不提倡，要保证没有公开卡牌分享链接\n}\n```\n\n**返回**\n\n若成功：\n\n```json\n{\n    \"newCardID\": 1024\n}\n```\n\n若未登录：返回```{\"newCardID\": \"\", \"message\": \"Please login first\"}```\n\n若登录且有未传递的卡牌且未传递的卡牌不是这张卡牌：返回```{\"newCardID\": \"\", \"message\": \"Please share back what you got\", \"shouldGo\": \"card1.html?cardID=555\"}```\n\n若力扣卡牌链接不合法：返回 ```{\"newCardID\": \"\", \"message\": \"Not a right link\"}```\n\n若卡牌类型不存在：返回 ```{\"newCardID\": \"\", \"message\": \"We don't have a cardType of this\"}```\n\n### /card/cannotUse/\n\n报无效\n\n**方法**\n\nPOST\n\n**请求**\n\ndata\n\n```json\n{\n    \"warrant1024\": \"theWarrant484s48e4fs84e\",\n    \"cardID\": 159\n}\n```\n\n**响应**\n\n若成功：\n\n```json\n{\n    \"response\": \"ok\"\n}\n````\n\n若未登录：返回```{\"response\": \"\", \"message\": \"Please login first\"}```\n\n若登录且有为传递的卡牌且未传递的卡牌不是这张卡牌：返回```{\"response\": \"\", \"message\": \"Please report what you got\", \"shouldGo\": \"card1.html?cardID=555\"}```\n\n若登录且无未传递的卡牌：返回```{\"response\": \"\", \"message\": \"Sorry, you shouldn't report this card\"}```\n\n若被报卡牌不存在：返回```{\"response\": \"\", \"message\": \"The cardID is unavailable\"}```\n\n## TODO\n\n+ 一人领两次的问题\n+ 卡片为```\u0026```时url解析错误的问题（我记得专门修复过这个问题捏，算了，遗留为永久BUG吧）\n\n## End\n\nBy the way，通过a.com的网页向b.a.com发送登录请求，b.a.com真的没有办法直接设置a.com的cookie吗？X_X 或者说，三级域名能设置二级域名的cookie吗\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletmefly666%2Fshare1024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletmefly666%2Fshare1024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletmefly666%2Fshare1024/lists"}