Code Monkey home page Code Monkey logo

pikapika's Introduction

PIKAPIKA - 漫画客户端

releases

  • 美观易用且无广告的漫画客户端, 能运行在Windows/MacOS/Linux/Android/IOS中。
  • 此APP内容存在限制级别内容(例如 露骨/血腥/暴力/吸毒),18岁以下的用户需在监护人陪同下使用,并请您在遵守当地法律法规。
  • 您的star和issue是对开发者的莫大鼓励, 可以源仓库下载最新的源码/安装包, 表示支持/提出建议。
  • 源仓库地址 https://github.com/niuhuan/pikapika

界面 / 功能

阅读器

分流

VPN->代理->分流, 这三个功能如果同时设置, 您会在您手机的VPN上访问代理, 使用代理请求分流服务器。

漫画分类/搜索

分类 列表

漫画阅读/下载/导入/导出

您可以导出任意已经完成的下载到zip, 从另外一台设备导入。 导出的zip解压后可以直接使用其中的HTML进行阅读

导出下载

HTML预览

游戏

games game

特性

  • 用户
    • 登录 / 注册 / 获取个人信息 / 自动打卡
    • 修改密码 / 修改签名 / 修改头像
  • 漫画
    • 分类 / 搜索 / 随机本子 / 看此本子的也在看 / 排行榜
    • 在分类中搜索 / 按 "分类 / 标签 / 创建人 / 汉化组" 检索
    • 漫画详情 / 章节 / 看图 / 将图片保存到相册
    • 收藏 / 喜欢
    • 获取评论 / 评论 / 评论回复 (社区评论后无法删除, 请谨慎使用)
  • 游戏
    • 列表 / 详情 / 无广告下载
  • 下载
    • 导入导出 / 无线共享 / 移动设备与PC设备传输
    • 导出到加密的归档文件 / 直接观看加密的归档文件
  • 聊天室
  • 缓存 / 自动清理
  • 设备支持
    • 移动端
      • 文件关联
      • 自定义超链接
    • 安卓
      • 高刷新频率屏幕适配 (90/120/144... Hz)
      • 安卓10以上随系统进入深色/夜间模式

其他说明

数据资料存储位置

  • ios/android : 程序自身数据目录中, 删除就会清理
  • windows : 程序同一目录中data文件夹下
  • macos : ~/Library/Application\ Support/pikapika
  • linux : ~/.pikapika

技术架构

多平台适配

这个应用程序使用golang和dart(flutter)作为主要语言, 可以兼容Windows, linux, MacOS, Android, IOS

使用了不同的框架桥接到桌面和移动平台上

  • go-flutter => Windows / MacOS / Linux
  • gomobile => Android / IOS

平台

构建环境

(桌面端/移动端)

请您遵守使用规则

软件副本分发以及代码使用规则

  • 本软件的代码在未经允许的情况下可以自用但不允许释放任何releases, 个人或企业不可用于商业用途, 不可上架任何商店。。
  • 不要在任何其他 二次元软件聊天社区开发社区 内, 发布有关本软件的链接或信息, 对于观点不同产生的分歧作者不站队任何立场。
  • 不要发送本软件安装包到 任何社区内 , 不要将APK/IPA/ZIP/DMG发送包括任何聊天软件内的群聊功能。 请使用Github中提供的Releases页面的链接。
  • 对本仓库的fork需要保留本仓库的链接, 以引导用户在主要仓库进行讨论。

责任声明

  • 作者仅分享编程技术, 不分发软件, 不对分发软件承担任何后果。 因传播载造成的法律问题或纠纷, 需行为人自行承担, 请您遵守当地法以及副本接受方(社区或人)所在地区的法律。

pikapika's People

Contributors

niuhuan 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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

pikapika's Issues

安卓下载路径问题

手机品牌 小米, 版本 miui12(安卓10),

1.下载的漫画不在内置SD或外置SD。保存在系统空间 /data/data/niuhuan.pikapi.

2. 导出异常, 导出时无法选择导出路径,只有storage,无法看见目录。
错误消息:


导出失败PlatformException(,open/storage/emulated/0/ 达尔文游戏-2021_09_23_11_18_26.525.zip:permission denied,,null)


1632396111929

[建议]使用Github Action来自动化编译

参见文档,Github Action可以方便的进行自动化编译,例如增加新commit时自动编译打包各个平台的软件并发布到release,节约开发者的时间,也方便用户直接测试。
比如我自己为了直接使用最新版,就写了编译pika的ation流程
只是个人的一些建议

[Feature request]漫画详情页面的一些建议

  1. 漫画详情页面上有各类tag,在官方版中这些tag都可以点击,可以查看到该tag下的所有漫画
  2. 显示漫画的上传/更新时间
  3. 保存阅读进度,增加”继续阅读“的功能,阅读到xx话xx页
  4. 点击作者名称可以跳转到搜索作者

hover run 报错

尝试自己编译Mac版,结果出现以下错误
hover: Using engine from cache
hover: Cleaning the build directory
hover: ⚠ The go-flutter project tries to stay compatible with the beta channel of Flutter.
hover: ⚠ It's advised to use the beta channel: flutter channel beta
hover: Bundling flutter app

💪 Building with sound null safety 💪

hover: Compiling 'go-flutter' and plugins
go: [email protected] (replaced by ./pica): reading pica/go.mod: open /Users/myname/pikapi-flutter/go/pica/go.mod: no such file or directory
hover: Go build failed: exit status 1

go version: 1.16.7
hover version: v0.46.6
flutter SDK: 2.2.3

安卓版编译失败

日志见:https://github.com/zhongfly/apk-Build/runs/3508199631?check_suite_focus=true

Running Gradle task 'assembleRelease'...                        
lib/screens/GameInfoScreen.dart:9:8: Error: Error when reading 'lib/screens/GameDownloadScreen.dart': No such file or directory

import 'GameDownloadScreen.dart';

       ^

/opt/hostedtoolcache/flutter/2.2.3-stable/x64/.pub-cache/hosted/pub.dartlang.org/flutter_datetime_picker-1.5.1/lib/flutter_datetime_picker.dart:311:32: Warning: Operand of null-aware operation '??' has type 'Color' which excludes null.

 - 'Color' is from 'dart:ui'.

                  color: theme.backgroundColor ?? Colors.white,

                               ^





lib/screens/GameInfoScreen.dart:152:53: Error: The method 'GameDownloadScreen' isn't defined for the class '_GameInfoScreenState'.
 - '_GameInfoScreenState' is from 'package:pikapi/screens/GameInfoScreen.dart' ('lib/screens/GameInfoScreen.dart').
Try correcting the name to the name of an existing method, or defining a method named 'GameDownloadScreen'.
                              builder: (context) => GameDownloadScreen(info)),

【BUG】应用信息显示问题

MIUI12.5 Android11
1.应用安装时版本显示是1.0.0,不知道是不是遇到了BUG,连续几个版本都是这样
2.在多任务管理界面,只有图标没有应用名
查看预览

很实用不过有一两个问题

在线游览时图片清晰度很低,设置里选项“浏览时图片质量”改了无效。
Screenshot_20210818-093917

还有在
2021_08_18_09_40_02
这样的界面无法找到上传者

还有这个界面
Screenshot_20210818-094327_1
那4个问号看着不是很舒服,如果可以的话希望能添加一个自定义的功能

下载解压之后的图片因为没有文件后缀(.jpg .png)没法直接打开

最后希望您的pika第三方客户端做得更好 (安卓端)#

离线使用反馈

既然看过的本子会缓存在本地,那离线打开pikapi的浏览记录时,应该可以看已缓存的本子才对,而不是傻傻地提示用户下拉刷新。
顺带一提,已缓存的本子在下载时可以直接从remote文件夹提取图片,就不必再下载一次。

疑似无法登录

我已确认账号密码正确,在官方版本上用完全相同的账号密码重新登录成功。
联想到多日前的服务器维护,是否可能是服务器会检查版本号?
其他客户端使用2.2.1.3.3.4的版本号登录正常
以下为官方最新版本的登录请求:

POST /auth/sign-in h2 
Host: picaapi.picacomic.com 
api-key: C69BAF41DA5ABD1FFEDC6D2FEA56B 
accept: application/vnd.picacomic.com.v1+json 
app-channel: 2 
time: 1635686069 
nonce: 78e0badd1e6145c1bc5334e5899fef6c 
signature: 7f9fb11fd3f46ef40013e5296afdac140ab020687530f43cd98bd4d15dd14a28 
app-version: 2.2.1.3.3.4 
app-uuid: defaultUuid 
image-quality: original 
app-platform: android 
app-build-version: 45 
content-type: application/json; charset=UTF-8 
content-length: 43 
accept-encoding: gzip 
user-agent: okhttp/3.8.1 
 
{"email":" ","password":" "}

尝试构建失败

使用gomobile 执行 gomobile bind -target=android/arm -o lib/Pikapi.aar ./
后运行 flutter build apk 时报错
运行环境为windows10

如下
image

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
        at java.base/java.net.PlainSocketImpl.connect0(Native Method)
        at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/java.net.Socket.connect(Socket.java:558)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
        at java.base/sun.net.www.http.HttpClient$1.run(HttpClient.java:526)
        at java.base/sun.net.www.http.HttpClient$1.run(HttpClient.java:524)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/sun.net.www.http.HttpClient.privilegedOpenServer(HttpClient.java:523)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:564)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:212)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1208)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:189)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
        at org.gradle.wrapper.Download.download(Download.java:44)
        at org.gradle.wrapper.Install$1.call(Install.java:61)
        at org.gradle.wrapper.Install$1.call(Install.java:48)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Running Gradle task 'assembleRelease'...                           43.2s
Gradle task assembleRelease failed with exit code 1

[Bug]在我的-配置选项中“返回”会直接退出软件

软件版本:android 1.0.3
复现步骤:
1.正常登录进入软件
2.点击“我的”,右上角“配置选项”
3.按手机返回键,直接退出了软件而非返回到“我的”

另外建议,退出软件需二次确认(比如toast提醒需要连按2次返回键,或者弹窗确认),并增加设置可以关闭二次确认

iOS版本安装

请问有没有ios版本安装教程呀,求指一条路(((o(゚▽゚)o)))

窗口初始化还是不行呀

1.mov

我每次都得调
所以说一直在讲的自适应,不知道是不是Flutter实现不了 还是你代码实现不了

关于自动更新以及版本号

我希望这个版本

我期望将版本号将放到 /lib/assets 里
{
nightyVersion: "",
stableVersion: "",
content: '',
}

启动程序的时候进行校验 读取仓库的本地的版本进行校验, 如果更高则提示更新。
我期望更友好一点,考虑到手机和电脑都能使用。

或者有没有办法读取releases

@zhongfly
@Z-fly

窗口缩放比例固定

提供个选项,锁定下缩放比例,现在是任意调整窗口大小,然后图片就会跟着拉伸

关于分流功能的疑问

我看了一下别的客户端,发现分流都是通过修改请求头里的app-channel项实现的,这个应用却是写死了ip地址?
从我个人理解看,不应该是前者更简单并且更容易适应分流地址的变化吗?

计划中的功能 & BUGS

计划功能

  • 实现字体更换
  • 按EP导出图片到相册
  • 对评论和二级评论点赞
  • 将内容迁移到外置SD卡的功能
  • 下载列表可以刷新
  • 默认的utc时区改为+8, 时区的设置
  • 对未审核通过漫画进行友好提示
  • 多线程下载
  • 安卓指纹解锁 / ios 密码验证
  • 安卓截屏策略
  • 自由点击和滑动的listview
  • 游戏的评论区
  • PNG传递˜ 解决那些让程序崩溃的JPEG
  • 删除PNG传递功能并测试
  • 图片预览和保存优化(现在只有webtoon可以保存和预览)
  • 自动检查更新
  • 安卓自动夜间变色之后,三星statusBar的icon颜色,文件选择器标题颜色,夜间模式标题颜色,不美观需要解决
  • 友好的注册提示
  • 桌面环境下文字大小
  • 自定义主题
  • 将漫画导出成.exe/.apk/.dmg/.appImage/.ipa
  • 下载时对文件(夹)更名
  • 修改密码/头像/个性签名
  • 修复 : 设置取消按键翻页动画后, webToon模式会闪烁 , (scrollable_positioned_list 插件)
  • iOS 120Hz

未满足的需求

  • #54
  • 离线模式/离线缓存的读取

还未解决的BUGS

较难或者与现在模式难以兼容的需求

【下载、保存】相关优化

image
看了下E-Hentai下载器,类似的,让图片下载后的名称支持表达式,实现指定名称例如 01.jpg 02.jpg xx0001.jpg xx0002.jpg

多线程下载

似乎下载是单线程的,请问能否引入并发下载。

安卓无法登录

账号和密码确认无误了,在官方客户端可以登录,但是在这个app没办法登录。
配置是
账号
密码
分流1
代理服务器未设置
点右上角保存后弹窗提示请检查账号密码

虚拟机内无法运行

OS: Windows 10 (1809 OS build 17763.720)
虚拟机运行的win10, 在虚拟机运行打开exe毫无反应, 不知是不是虚拟机的图形api不足以运行

v1.1.x 与 v1.2.x 文件迁移说明

应用程序已经重新命名为 pikapika (源自一种啮齿类动物的叫声, 并没有实际意义)。

如果您以前曾下载过 v1.1.x 或更早的 v1.0.x 的 release。之后更新为v1.2.x, 且希望前后版本数据兼容, 您可以参考这个issue。

Windows :

  • ${程序文件夹}/data/pikapi/* => ${程序文件夹}/pikapi/*
  • 您可以将pikapi内文件移动或覆盖到data, 最后删除pikapi文件夹。

MacOS

  • "~/Library/ApplicationSupport/pikapi" => "~/Library/ApplicationSupport/pikapika"
  • 关闭软件并迁移覆盖文件

Linux

  • "~/.pikapi" => "~/.pikapika"
  • 关闭软件并迁移覆盖文件

iOS

  • 不同APP副本的形式存在, 即使数据一摸一样
  • 未取得最高权限(越狱)将不能进行迁移

Android

  • 不同APP副本的形式存在, 即使数据一摸一样
  • 可以使用APP内的迁移功能, 反复迁移 (新旧版本都进行迁移, 然后使用文件管理器覆盖文件, 再删除旧版本)
  • 获取ROOT权限的话, 覆盖 /data/data/niuhuan.pikapi => /data/data/niuhuan.pikapika

评论区优化等

当前有缓存的就不刷新了,也就是评论个数不增加了,包括标签和简介都是之前缓存的,之后不会更新了

显示评论区的置顶信息

关于软件界面的一些建议

  • 1,显示上传者,点击可以查看其上传的所有漫画(有的是某汉化组上传,还是有意义),我觉得可以放在时间一栏的左侧
  • 2,在漫画列表和漫画详情页显示漫画页数,总页数或每话页数。
  • 3,漫画列表里滑动至页底时,自动加载下一页,而不是目前这种翻页式的操作
  • 4,漫画阅读页面:参考目前大多数漫画应用的操作,点击界面中间显示设置(进度滑动条),使得可以完全无遮挡的全屏,设置中添加修改图片质量等快捷设置
  • 5,漫画阅读页面:进度条直接显示总页数与当前所在页数,而非滑动时才显示当前所在页数
  • 6,关于页面中显示软件版本号
  • 7,可以屏蔽某些tag,不显示有对应tag的漫画
  • 8,登录失败应有提示,比如弹窗,目前的体验类似点了保存没反应一样。
  • 9,加载失败的图片可以重新加载
  • 10,评论显示时间
  • 11,软件主页“浏览”里,可以不显示某些分类
  • 12,更改排序后立刻刷新重载该分类

【需求】自动保存到指定目录

加入一个选项,勾选之后,下载时自动下载到外部存储,或者下载完之后自动导出到外部存储

还有,能不能在“我的下载”界面加个下拉刷新或者刷新按钮之类的,刷新下载状态,有时候需要退出界面再进去才能看到下载状态的改变。

[建议] 若干建议

  1. 添加支持“预加载”特性,使阅读体验更流畅

预加载接下来2张图片的内容,有效减少阅读时加载图片的等待时间

  1. 希望将加载新图片时的占位用图片删去,用普通的加载动画代替(转圈圆环)

  2. 如果可以的话,添加支持Android 10或更新版本下,跟随系统切换深色主题

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.