GithubHelp home page GithubHelp logo

cngal / cngalwebsite Goto Github PK

View Code? Open in Web Editor NEW
100.0 100.0 10.0 118.32 MB

CnGal是一个非营利性的,立志于收集整理国内制作组创作的中文Galgame/AVG的介绍、攻略、评测、感想等内容的资料性质的网站。

License: MIT License

C# 54.66% Dockerfile 0.21% HTML 26.88% CSS 8.45% JavaScript 7.38% Batchfile 0.01% SCSS 2.43%

cngalwebsite's People

Contributors

cngal avatar littlefish-233 avatar sliots avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cngalwebsite's Issues

需求:对网盘类下载提供结构化支持而非一长串提取码链接

你的功能是为了解决一个现有问题吗?
是的,经常有一些小作品采用网盘分享作为外部链接,而他们的提取码和链接可能是混杂在一起的

图片

描述你想要的解决方式
类似现有的结构化方式(#93 ),允许指定网盘厂商(百度、阿里)和链接部分自动识别(#122 ),结构化提取码(甚至可以尝试自动组装,百度的链接是可以把提取码作为参数在URL里面传递的)

其他内容
可能没多少需求,建议不用排期很靠前,排future就行了,只是看到了就提一句罢了,万一哪一年开发人员闲了再写就是。

不过至少先给百度盘之类的加个LOGO吧233(也不急)

需求:添加对基于标识符的知识图谱索引支持

你的功能是为了解决一个现有问题吗?
是的,目前每次填写标识符都非常麻烦
(别看Issue名字这么夸张,其实说白了就是打ID打累了)
(感觉这个Issue只能解决我一个人的需求?毕竟我目前没看到有其他知识图谱爱好者(逃))

描述你想要的解决方式
能够快速检索常见的标识符系统,快速填写Key本身

描述你考虑过的解决方案
这个要看程序大佬怎么实现了
比如他们可以直接快速选择是哪一家的标识符,并且能把存量的转化出来

其他内容

  • CNGAL上
    现在每次添加标识符都得手工打一个完整的链接,并且需要保证大小写完全不会出错
    图片
    并且标识符应该一般是不需要手动再输入一串描述文本的吧?
    图片
    然后才能看到效果,审核会不会也很费力?
    图片

  • VNDB上
    而VNDB的编辑界面虽然不智能,但是它也只需要我把核心内容填进去就好
    图片

  • Wikidata上
    而Wikidata的编辑器是具有联想功能的,它显然是针对标识符做过针对性的优化,常见的各大索引都有对应的Property
    图片

希望添加“角色”“CV”的专题页

类似于“打折游戏”“免费游戏”的专题页面,希望添加这两个页面帮助玩家查询信息
角色目前在词条主页中有专门卡片展示,但效果并没有达到预期
CV目前没有想到该怎么做

希望添加草稿箱

希望能够保存未完成的编辑到草稿箱,方便下次继续编辑。
尝试实现过简单的草稿箱,但是读取数据时Markdown编辑器会报错,目前没想到怎么解决

建议:希望能够将各个市场平等看待作为商店信息

例如我们以一款有Taptap和Steam同时发行的游戏为例
图片

这一个板块的题目直接叫Steam信息,而Taptap则被放在了下面的相关网站上。

又或者是同时在NS上也有销售的WILL美好世界:

图片

它在NS,Taptap两套商店/应用市场里面均有提供,是可以直接搞到对应的索引的。

能否对于Steam应用、Taptap应用等,都采取和之前#93 中提到的索引支持一样,大量的索引化填写,减少复制URL的麻烦?

当然这估计又得意味着后端的一堆大改了(挠头)

好处是可以直接用爬虫从Wikidata上面爬取对应的标识符进来。

比如Steam应用对应的是P1733,Taptap对应的是P9297,NS的eShop对应的是P8084

Apple Store和GPlay的我还没找,不好找了应该。


F12简单改了一个效果出来,差不多是这意思?

图片

需求:主页布局进一步适配移动端

正所谓吃饱了撑着没事干,看到Bangumi的第三方APP之后突然觉得现在这个移动端主页太挫了,应该做更多的布局适配
(这不正是去年11月干的事情么
(今年4月不是把去年干的全部推翻了吗
可谓是切身地理解了『历史是呈螺旋形向上发展的』这句话的含义

Screenshot_2022-06-21-11-43-57-043_com czy0729 ba

把侧边栏移动到底部,顶部导航栏根据不同面进行切换,词条卡片参考其样式修改

暑假或者哪天闲得慌再弄

请求合并《CnGal资料表》处理脚本到投稿工具中

《CnGal资料表》处理脚本使用.Net Framework 4.7.2写成,依赖于Windows平台;而且处理完成后需要使用管理员后台的批量导入功能才能导入。
批量导入功能属于历史遗留,后期需要全部删除,一并迁移到投稿工具中
PS. 可能得加一个从头开始部署得数据导入引导页面

缺陷:没有检查名称前后空格

编辑词条各个信息时有可能前后不小心多录入了空格,导致错误关联或重复创建对象

应该对所有输入检查并剔除前后空格或者其他特殊字符

需求:希望消息通知展示来源信息

目前没法方便地在消息通知页跳转到来源,希望能规范各个消息通知的格式,动态聚合数据展示
PS. 顺手把无法回复的bug修了
PS. 最古老的还没重构过的模块,现在动起手来绝对会很费劲吧

[需求]是否会考虑支持Opensearch

你的功能是为了解决一个现有问题吗?

不是,只是为了能地址栏直达搜索更快捷

如:
图片
图片

描述你想要的解决方式

期望能提供被主流浏览器(Firefox/Chrome)识别的Opensearch文件,在地址栏右键单击可以直接添加为搜索引擎

目前是不行的:

图片
图片

描述你考虑过的解决方案
参考 https://github.com/opensearch-project/OpenSearch 提供 opensearch.xml

其他内容

暂无

缺陷:错误地保存角色性别枚举值

正确的数据格式:
性别:None
不清楚为什么会产生的数据格式:
性别:保密

None对应的名称是保密,但是ToString方法和GetDisplayName方法获取的应该是不一样的值

    public enum GenderType
    {
        [Display(Name = "保密")]
        None,
        [Display(Name = "")]
        Man,
        [Display(Name = "")]
        Women,
        [Display(Name = "其他")]
        Other
    }

导致获取词条视图时出现以下错误

2022-06-25 04:52:52.1611|0|ERROR|Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware|An unhandled exception has occurred while executing the request. System.ArgumentException: Requested value '保密' was not found.
   at System.Enum.TryParseByName(RuntimeType enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, UInt64& result)
   at System.Enum.TryParse(Type enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, Object& result)
   at System.Enum.TryParse(Type enumType, String value, Boolean ignoreCase, Boolean throwOnFailure, Object& result)
   at CnGalWebSite.APIServer.Application.Entries.EntryService.GetEntryIndexViewModelAsync(Entry entry) in /src/CnGalWebSite/CnGalWebSite.APIServer/Application/Entries/EntryService.cs:line 972
   at CnGalWebSite.APIServer.Controllers.EntriesAPIController.GetEntryViewAsync(Int32 id) in /src/CnGalWebSite/CnGalWebSite.APIServer/Controllers/EntriesAPIController.cs:line 332
   at lambda_method1579(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)|url: http://www.cngal.org/api/entries/GetEntryView/4051 |action: GetEntryView |Microsoft.AspNetCore.Diagnostics.DiagnosticsLoggerExtensions.UnhandledException

但是我本地无法复现,按正常流程创建编辑词条不应该出现这个错误
离谱(×

问题:为何获取所有Entries需要管理员权限

以获取条目信息为例:(接续之前QQ群的讨论)

protected override async Task OnInitializedAsync()
{
try
{
InforModel = await Http.GetFromJsonAsync<ListEntriesInforViewModel>(ToolHelper.WebApiPath + "api/admin/listentries");
}
catch (Exception ex)
{
ErrorHandler.ProcessError(ex, "无法获取词条数据");
}
}

该段代码在Swagger上对应的API为:

图片

对于数据终端用户,在Swagger上只能找到获取单个游戏条目的API,需要带参数{id}

图片

要获取所有数据,只能从 app.cngal.org/data 人工导出数据,但这里导出确实只有metadata,各种关联数据都不包含

图片

图片

图片


此外,贵站的swagger实在太慢,不管火狐还是谷歌都一样。当然我知道这是上游问题(caspar-chen/swagger-ui-layer#33 ),但是这个不吐槽觉得实在对不住点开一个折叠菜单的焦躁

请求规范日志输出

目前整个项目没有规范的后台日志输出,极度依赖于本地实时调试
已经出现过几次仅在生产环境中出现的Bug,应尽快补全日志输出

使用MASA Blazor重置全部UI

剩余需要重置的页面/控件

  • 后台管理
  • 收藏夹编辑页面
  • 移动端主页
  • 个人资料修改页面
  • 登入相关页面
  • 表格组件
  • 输入框组件
  • 通知
  • 图表

需求:提前检查并展示编辑可能会造成的副作用

目前部分编辑可能会造成副作用,例如词条编辑关联信息会自动反向关联,编辑游戏SteamId会自动添加Steam主图等等;但是这些副作用对用户都是不可预知的,可能会造成用户误操作。

可以提前列出创建词条后哪些会产生哪些副作用,然后用户可以选择阻止某些副作用。

估计又是一个大工程,审核的顺序要大改

需求:合并投稿工具到主站中

目前投稿工具采用控制台的方式,对普通用户极度不友好;采用独立部署的方式,极大地增加了时间成本。
合并到主站之后,可以方便地集成实时可视化提示,利用MAUI也可以方便地部署客户端版本

编辑标签关联信息时未去重

阅读源码后发现这部分没有去重,目前流程下没有问题
但是,如果其他部分出现问题,将会造成循环生成审核记录的bug

缺陷:站内消息发送及展示代码逻辑混乱

目前站内消息仅用于通知编辑结果和回复,可以优化发送逻辑
但是,消息发送代码大量耦合在其他业务逻辑里,大量的复制粘贴造成逻辑极其混乱,无法继续维护
需要重构

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.