{"id":15095908,"url":"https://github.com/proudmubai/gofilm","last_synced_at":"2025-05-14T20:07:46.299Z","repository":{"id":153954788,"uuid":"623353074","full_name":"ProudMuBai/GoFilm","owner":"ProudMuBai","description":"多播放源自动采集在线影视网站 golang vue","archived":false,"fork":false,"pushed_at":"2025-03-23T08:31:13.000Z","size":53486,"stargazers_count":1234,"open_issues_count":37,"forks_count":304,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-13T17:46:41.128Z","etag":null,"topics":["axios","elementplus","film","gin","go-redis","gocolly","golang","gorm","movies","robfig-cron","vite","vue3"],"latest_commit_sha":null,"homepage":"https://m.mubai.link","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProudMuBai.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-04T07:48:36.000Z","updated_at":"2025-04-13T00:30:53.000Z","dependencies_parsed_at":"2023-10-10T17:53:43.005Z","dependency_job_id":"3ce0b0a8-cb2f-4dcf-9b09-a36afcbe3077","html_url":"https://github.com/ProudMuBai/GoFilm","commit_stats":{"total_commits":57,"total_committers":1,"mean_commits":57.0,"dds":0.0,"last_synced_commit":"19a34d0274cdfd9f7476bcff96906fe71d6222a0"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProudMuBai%2FGoFilm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProudMuBai%2FGoFilm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProudMuBai%2FGoFilm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProudMuBai%2FGoFilm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProudMuBai","download_url":"https://codeload.github.com/ProudMuBai/GoFilm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219373,"owners_count":22034397,"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":["axios","elementplus","film","gin","go-redis","gocolly","golang","gorm","movies","robfig-cron","vite","vue3"],"created_at":"2024-09-25T15:43:37.474Z","updated_at":"2025-05-14T20:07:46.270Z","avatar_url":"https://github.com/ProudMuBai.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoFilm\n\n一个基于 vue 和 gin 实现的在线观影网站\n\n效果展示: \u003ca href=\"https://m.mubai.link/\" target=\"_blank\"\u003e点击访问演示站点\u003c/a\u003e  \n\n新版本测试访问站点: [测试内容站点](http://113.44.5.201/index)\n\n## 简介\n\n**GoFilm** \n\n项目采用vite + vue作为前端技术栈, 使用 ElementPlus 作为UI 框架进行开发\n\n后端程序使用 Gin + gorm + go-redis 等相关框架提供接口服务, 使用 gocolly 和 robfig/cron 进行公共影视资源采集和定时更新功能\n\n\n\n## 项目部署\n\n**部署方式**\n\n- [Docker部署](https://github.com/ProudMuBai/GoFilm/blob/main/film/README.md) \n- [1Panel部署(可视化面板操作)](https://blog.mubai.link/2024/04/21/Docs/gofilm/)\n\n**使用指南**\n\n- 后端项目路径 `GoFilm/server`, 包含 项目结构说明,  后端程序源码, API接口说明, 本地启动注意事项 [查看](https://github.com/ProudMuBai/GoFilm/tree/main/server)\n- 前端项目路径 `GoFilm/client`,  包含 项目结构说明,  前端项目源码,  配置文件说明, 本地启动方式  [查看](https://github.com/ProudMuBai/GoFilm/tree/main/client)\n- 部署文件 `GoFilm/film`, 包含项目部署所需的所有文件以及相应的说明文件  [查看](https://github.com/ProudMuBai/GoFilm/tree/main/film)\n- 程序使用文档:  提供项目安装部署以及相应的初始化使用步骤说明  [点击前往](https://blog.mubai.link/2024/04/21/Docs/gofilm/)\n\n\n\n## 新版本说明\n\n**网站前台**\n\n- 对新功能和目前功能有需要改善和补充的可以去issue #71下方留言, 一月中旬休假可以集中处理\n\n- 前台部分对网站名称以及播放源等部分信息与后台数据进行关联, 可通过后台进行修改\n- 影片详情部分以及首页导航数据结构发生变化, 样式保持一致\n- 默认访问地址: `服务器IP:默认端口 [http://127.0.0.1/index]`\n\n**管理后台**\n\n- 新增管理后台功能组, 主要用于对 `采集站点`, `定时更新`, `网站基本信息`, `图片同步`, `影片分类`, `影片信息` 等进行管理 (部分功能正在完善中, 不影响已有功能使用)\n- 管理后台访问需进行登录, 默认账号/密码: `admin admin` (登录成功后自行通过右上下拉弹窗进行密码修改)\n- 具体情况请自行搭建访问\n- 默认访问地址: `服务器IP:默认端口/manage [http://127.0.0.1:3600/manage]`\n\n**更新说明**\n\n- 后台功能完善阶段时不会同步更新到演示站点, 需自行使用服务器搭建体验\n- 使用中出现问题可在项目 Issues 中进行描述, 有需要添加的新功能和好的建议也可以提供\n- 新版本安装方法以及使用说明请查看本项目 film 文件夹下的说明文件\n\n\u003e新增内容:\n\u003e\n\u003e- 新增移动端观看历史\n\u003e- 新增采集失败记录功能 \u0026\u0026 基于失败的采集进行重新采集处理\n\u003e- 默认定时任务新增定期处理失败采集功能\n\u003e- 修复Banner首页轮播横幅参数修改提交异常问题\n\u003e- 修复首页一级分类导航无数据问题\n\u003e- 修复首页界面影片信息卡片异常显示问题\n\u003e- 优化影片详情以及播放页的组件背景显示问题\n\u003e\n\u003e后续计划:\n\u003e\n\u003e- 新增功能测试 \u0026\u0026 buf修复\n\u003e- 完善历史观看界面功能 \u0026\u0026 优化相应UI组件\n\u003e- 针对播放器进行优化 OR 更换播放器组件\n\u003e- 采集方式细节化, 实现定向采集以及单一影片的实时手动更新功能\n\n## 目录结构\n\n- client 客户端项目目录 [Client简介](./client/README.md)\n- server 服务端接口项目目录 [Server简介](./client/README.md)\n- film 项目部署相关配置目录 [film 项目安装](./film/README.md)\n- 详细说明请查看具体目录中的README文件\n\n```text\nGoFilm-main                            \n├─ client                              \n│  ├─ public                           \n│  │  └─ favicon.ico                   \n│  ├─ src                              \n│  │  ├─ assets                        \n│  │  │  ├─ css                        \n│  │  │  │  ├─ classify.css            \n│  │  │  │  ├─ film.css                \n│  │  │  │  └─ pagination.css          \n│  │  │  └─ image                      \n│  │  │     ├─ 404.png                 \n│  │  │     └─ play.png                \n│  │  ├─ components                    \n│  │  │  ├─ Loading                    \n│  │  │  │  ├─ index.ts                \n│  │  │  │  └─ Loading.vue             \n│  │  │  ├─ FilmList.vue               \n│  │  │  ├─ Footer.vue                 \n│  │  │  ├─ Header.vue                 \n│  │  │  ├─ RelateList.vue             \n│  │  │  └─ Util.vue                   \n│  │  ├─ router                        \n│  │  │  └─ router.ts                  \n│  │  ├─ utils                         \n│  │  │  ├─ cookie.ts                  \n│  │  │  └─ request.ts                 \n│  │  ├─ views                         \n│  │  │  ├─ error                      \n│  │  │  │  └─ Error404.vue            \n│  │  │  ├─ index                      \n│  │  │  │  ├─ FilmClassify.vue        \n│  │  │  │  ├─ FilmClassifySearch.vue  \n│  │  │  │  ├─ FilmDetails.vue         \n│  │  │  │  ├─ Home.vue                \n│  │  │  │  ├─ Play.vue                \n│  │  │  │  └─ SearchFilm.vue          \n│  │  │  └─ IndexHome.vue              \n│  │  ├─ App.vue                       \n│  │  ├─ main.ts                       \n│  │  ├─ style.css                     \n│  │  └─ vite-env.d.ts                 \n│  ├─ auto-imports.d.ts                \n│  ├─ components.d.ts                  \n│  ├─ index.html                       \n│  ├─ package.json                     \n│  ├─ README.md                        \n│  ├─ tsconfig.json                    \n│  ├─ tsconfig.node.json               \n│  └─ vite.config.ts                   \n├─ film                                \n│  ├─ data                             \n│  │  ├─ nginx                         \n│  │  │  ├─ html                       \n│  │  │  │  ├─ assets                  \n│  │  │  │  │  ├─ 404-b813c94a.png     \n│  │  │  │  │  ├─ index-984712d6.js    \n│  │  │  │  │  ├─ index-de4c7ff5.css   \n│  │  │  │  │  └─ play-bb9c8990.png    \n│  │  │  │  ├─ favicon.ico             \n│  │  │  │  └─ index.html              \n│  │  │  └─ nginx.conf                 \n│  │  └─ redis                         \n│  │     └─ redis.conf                 \n│  ├─ server                           \n│  │  ├─ config                        \n│  │  │  └─ DataConfig.go              \n│  │  ├─ controller                    \n│  │  │  ├─ IndexController.go         \n│  │  │  └─ SpiderController.go        \n│  │  ├─ logic                         \n│  │  │  ├─ IndexLogic.go              \n│  │  │  └─ SpiderLogic.go             \n│  │  ├─ model                         \n│  │  │  ├─ Categories.go              \n│  │  │  ├─ Movies.go                  \n│  │  │  ├─ RequestParams.go           \n│  │  │  ├─ ResponseJson.go            \n│  │  │  └─ Search.go                  \n│  │  ├─ plugin                        \n│  │  │  ├─ common                     \n│  │  │  │  ├─ dp                      \n│  │  │  │  │  ├─ ProcessCategory.go   \n│  │  │  │  │  └─ ProcessMovies.go     \n│  │  │  │  └─ param                   \n│  │  │  │     └─ SimpleParam.go       \n│  │  │  ├─ db                         \n│  │  │  │  ├─ mysql.go                \n│  │  │  │  └─ redis.go                \n│  │  │  └─ spider                     \n│  │  │     ├─ Spider.go               \n│  │  │     ├─ SpiderCron.go           \n│  │  │     └─ SpiderRequest.go        \n│  │  ├─ router                        \n│  │  │  └─ router.go                  \n│  │  ├─ go.mod                        \n│  │  ├─ go.sum                        \n│  │  ├─ main.go                       \n│  │  └─ README.md                     \n│  ├─ docker-compose.yml               \n│  ├─ Dockerfile                       \n│  └─ README.md                        \n├─ server                              \n│  ├─ config                           \n│  │  └─ DataConfig.go                 \n│  ├─ controller                       \n│  │  ├─ IndexController.go            \n│  │  └─ SpiderController.go           \n│  ├─ logic                            \n│  │  ├─ IndexLogic.go                 \n│  │  └─ SpiderLogic.go                \n│  ├─ model                            \n│  │  ├─ Categories.go                 \n│  │  ├─ Movies.go                     \n│  │  ├─ RequestParams.go              \n│  │  ├─ ResponseJson.go               \n│  │  └─ Search.go                     \n│  ├─ plugin                           \n│  │  ├─ common                        \n│  │  │  ├─ dp                         \n│  │  │  │  ├─ ProcessCategory.go      \n│  │  │  │  └─ ProcessMovies.go        \n│  │  │  ├─ param                      \n│  │  │  │  └─ SimpleParam.go          \n│  │  │  └─ util                       \n│  │  │     ├─ FileDownload.go         \n│  │  │     └─ Request.go              \n│  │  ├─ db                            \n│  │  │  ├─ mysql.go                   \n│  │  │  └─ redis.go                   \n│  │  └─ spider                        \n│  │     ├─ Spider.go                  \n│  │     └─ SpiderCron.go              \n│  ├─ router                           \n│  │  └─ router.go                     \n│  ├─ go.mod                           \n│  ├─ go.sum                           \n│  ├─ main.go                          \n│  └─ README.md                        \n├─ LICENSE                             \n└─ README.md                           \n```\n\n\n\n## 起源\n\n从正式接触编程语言到第一次动手敲代码, , 当时有动手做一些东西的想法,也正是在那时喜欢追番迷二次元, 曾想过做一个自己的动漫站,\n\n但因为知识面匮乏, 总是在进行到某一步时就会遇到一些盲区, 从最开始的静态页面到后面的伪数据, 也实现过一些当时能做到的部分, \n\n后面慢慢学习的过程中也渐渐遗忘了这个想法, 但因为一些偶然的因素, 想要做一个自己的开源项目, 于是就从零开始慢慢实现并完善了这个\n\n影视站的各个部分, 期间也一点点修改颠覆了一些最开始的思路, 但目前主体功能基本完善, 后续也会定期进行一些bug修复和新功能的更新\n\n如有发现Bug, 或者有好的建议, 可以进行反馈, 欢迎各位大佬来指点一二\n\n\n\n## 更新迭代计划\n\n- 目前用户界面的一些功能有待开发和完善, 大家也可以继续提供一些好的建议\n- 目前pc端的历史记录写了一个简单的测试版, 后面有时间会同步完善pc和wrap端的历史记录和收藏功能\n- 前台功能目前基本满足观看的需求, 后续考虑切入一些登录和账户以及管理后台的功能,慢慢完善这个项目.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproudmubai%2Fgofilm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproudmubai%2Fgofilm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproudmubai%2Fgofilm/lists"}