Skip to content

FishConsole/RandomPhotoProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RandomPhoto Server Core 随机图片提供系统服务核心

RandomPhoto

23年5月的一天,在一次给Maybe加入背景图片的过程中,我为了省事就去找了很多的图片壁纸API,最终因为他们的图片清晰度和美观度实在难以接受而放弃。从那个时候开始,我就有了一种想法,自己做一个API,从开发者角度上的解决找不到好用图片站的问题

在此之前,我学习前端的时候做了很多模板,有一个就是图片站,他有些简陋,而且没有js。但好在他已经实现了主页和详情页的外观,我就着手开始改造它

于是RandomPhoto1.x诞生了,它的图片经过了我的精挑细选,我还解决了在高一时不会解决的显示问题,让这个图片站的手机前端达到了一个可用的状态。

在后续的开发中,我不断的对图片站进行优化和改良,以随机二次元图片接口站的形式呈现3.x的版本并登陆互联网,在当时放眼望去,像图片搜索,上传审核,标签化范围随机等功能只有RandomPhoto提供了。

而现在,RandomPhoto4.x致力于解决人类守护记忆困难的问题并为此不断努力,我相信有一天,为我们所带来快乐的东西不会再随着时光的流逝和意外的发生而永久的毁灭。等到那时,RandomPhoto的私人服务器节点将遍布世界各地,他们持续同步,无法删除,公私网皆可访问,让万家灯火的璀璨不再只是往昔的泡影,这样,用户在通过接口看到一张张往日让自己开心的图片或许也算是一种治愈吧。

RandomPhoto 4.0 在 2023年12月13日 在实验中成功实现

RandomPhoto 4.0 在 2024年2月28日 适应安卓端

项目开源地址:https://github.com/FishConsole/RandomPhotoProject


前言

由于本人精力有限,很多bug无法及时修复,工程看起来有些杂乱,但是未来会慢慢解决这个问题

本项目后端前端采用中文变量,可能这里面还参杂了一些英文变量名,那都是因为这些代码太长时间没有被看过了


介绍

关于主结构

RandomPhotoServerCore的结构分为4个总部

数据中心 并发控制部 后端 前端
在这里你看到的是StaticDataCenter,之所以它是英文名是因为我要适配安卓系统,也因此这个目录可以被移动到任何的位置,只需要在后端的路径控制部门中修改一下就可以了 这个目录中存放的是和后端一同运行的线程,后端不会和线程通信,线程执行的任务是对图片进行处理 后端存放的flask程序文件 不用说了

关于数据中心

在主结构中,后端和前端都属于后端进行管理,但是数据中心中真正的前端才会包含在里面

AfterEnd DeepdanbooruPath Leading LOG PictureDatas TempData
这是后端用的东西,之所以放到这里面是因为他里面的东西和PictureDatas密切相关 这个路径里面放的是关于deepdanbooru的一些东西,目前里面没有东西,因为我封锁了这个功能,你可以去代码中找到开启他的方式 这是浏览器所需要的东西,后端会读取这里面的html和其他的内容作为模板和static路由所记录的东西 这是日志目录,通过调试模式启动,为RandomPhotoMobileServer提供显示日志的功能 这里面存放的是图片文件,前端和后端都需要读取这个目录中的图片才能实现最后的显示图片的功能 一些只会用一次的东西,目前的作用是导出数据库为excel表格

关于后端的各个部门

在主结构中,后端和前端都属于后端进行管理,但是数据中心中真正的前端才会包含在里面

测试部门 后端启动器 后端执行与回调部 三方隔离接口部 图片操作相关
这是后端用的东西,之所以放到这里面是因为他里面的东西和PictureDatas密切相关 这个路径里面放的是关于deepdanbooru的一些东西,目前里面没有东西,因为我封锁了这个功能,你可以去代码中找到开启他的方式 这是浏览器所需要的东西,后端会读取这里面的html和其他的内容作为模板和static路由所记录的东西 这是日志目录,通过调试模式启动,为RandomPhotoMobileServer提供显示日志的功能 这里面存放的是图片文件,前端和后端都需要读取这个目录中的图片才能实现最后的显示图片的功能

关于前端

在重构之前我不想写这些东西

以下是配置部分

需要的环境

python版本 操作系统 硬件配置
3.8.x-3.10.x Windows11,10 1H1G50M
Centos6
Ubuntu?
Android13,14

PS. 经过测试,RandomPhoto在Linux服务器上运行时可能会宕机,我在电脑上测试时无法复现,这边认为是服务器配置不行导致的,并且在手机上运行时不会出现服务器上的问题,测试手机为RedmiNote11Pro5G

调试模式

调试模式位于: \后端\后端执行与回调部\执行部门\运维相关\调试模式

路径控制

路径控制位于:\后端\后端执行与回调部\执行部门\运维相关

修改资源目录基本路径就可以极速迁移数据目录的位置

关于启动时的Import Error的问题

使用pip install 模块,就可以解决这个问题

关于接口

随机接口

随机接口 作用
/Random 根据设备ua返回满足屏幕的图片
/Random/竖屏 强制返回满足竖屏要求的图片
/Random/平板 强制返回满足平板要求的图片
/Random/横屏 强制返回满足横屏要求的图片
/Random/(任意一种或者不选)?range= 标签化范围随机并返回满足指定要求的图片(未经过广泛的测试)

锁死接口

随机接口 作用
/Select?文件名 强制返回指定的图片文件,文件名可以去info页面中点击目标图片后自动复制得到

MIT协议

RandomPhotoServerCore MIT许可证

版权所有 (c) 2024 鱼几斤

特此授予任何获得本软件及相关文档文件(以下简称“RandomPhoto”)副本的人,免费许可,以处理本软件,但在不受限制的情况下,包括但不限于权利: 使用、复制、修改、合并、出版、分发、再许可和/或销售本软件的副本,并允许将本软件提供给被提供的人,前提是本软件由此提供给被提供的人的使用,遵循以下条件:

上述版权声明和此许可声明应包含在所有副本或重要部分的软件中。

本软件按“原样”提供,不附带任何明示或暗示的保证,包括但不限于适销性、适用性于特定用途和非侵权的保证。在任何情况下,作者或版权持有人都无权对任何索赔、损害或其他责任承担责任,无论是在合同、侵权行为或其他方面,与本软件或其使用或其他交易有关。