qjzcj2008

Results 8 comments of qjzcj2008

> 分享一下我的做法,在安装Mojo的VPS上安装SSR,连上SSR之后,开启qun.qq.com,反复登录、退出。大概五次之后,等一阵子。再去登录时,如果不用图形验证,表示成功了。 想问一下你在安全验证通过之后会不会提示账号或密码错误啊,我连我vps上的酸酸乳似乎没有办法登陆所有腾讯的服务,都会在输入密码通过安全验证后提示“你输入的帐号或密码不正确,请重新输入。 ”

> 我试试你说的接口 > 至于排序问题,这个确实是个问题,手动选择搜索结果这个有点复杂了,我再想想吧 这个接口用get就可以了,参数和之前用那个好像是一样的,说起来老接口其实也可以用get请求的,不知道是出于什么原因使用了post的方式?排序这个确实难搞_(:3」∠)_

主要是不清楚以前老接口的返回形式,对nodejs也不是很熟,没办法自己修,现在开播状态可以用v1接口`api.live.bilibili.com/room/v1/Room/`的room_init或者是get_info来拿,这两个接口也只需要id=roomID参数,以json形式返回,开播状态在data.live_status下1为开播,0为未开播,这两个接口还支持shortid查询并可以给出该房间的真实id,get_info下还有直播间标题等信息,不过用来确认直播状态个人认为用room_init就足够了,更节省流量

尝试了一下,回退到1.5.9.1版本后可以正常打开黑名单添加页面。 初步问题定位到了Android 13权限变更后,`黑名单`和`手动搜索`功能还并未适配SAF https://github.com/rRemix/APlayer/blob/974f43003e0e3032187d097ecd66bd59745409e4/app/src/main/AndroidManifest.xml#L6-L9 1.6之后的版本细化了权限请求,在Android 13上不再请求储存权限。但`黑名单`的添加和`手动搜索`仍依赖于过往的`FolderChooser`类来实现,这就导致了1.6之后的版本在Android 13及以上版本添加`黑名单`和进行`手动搜索`时,即使授予全部权限仍会报错“应用需要必要的运行权限”。 https://github.com/rRemix/APlayer/blob/974f43003e0e3032187d097ecd66bd59745409e4/app/src/main/java/remix/myplayer/ui/activity/SettingActivity.kt#L1215-L1242 不过这个我不太会修(;′⌒`)尝试了一天面向GPT编程之后,感觉可能还是得等其他人来修了😥 顺带一提Q音的搜索接口好像也挂了,酷狗现在似乎也不再lrc格式中附带翻译了,这部分的讨论要新建个issue来讨论,还是用以前那个网易云接口的issue修改一下集中讨论呢?

权限适配这边我之前试了下,不过还是对这块不太熟,试了下没修好,估计到时候还是得你们来。😥 > 接口的话不建议花太多时间了,估计后面都慢慢不能用了 这倒确实,不过歌词功能也是我一开始来使用的一大痛点😥所以还是借这个issue说一下大体的情况吧,看看后面怎么处理 1. Q音的搜索接口感觉动得比较频繁,而且大多数都要求登录,可能这部分没什么比较好的办法了。 2. 酷狗现在似乎仅在其专有的krc格式中附带翻译了,格式的转换倒是在其他地方看到过已经有逆向成果了,跑了一下也能跑通,不过他们的内容格式也不是标准的双语lrc格式,他们用了一个叫`[language:]`的行携带了一个base64过后的json,json的内容包含不包含时间戳的歌词注音和(或)翻译,其按照行数和剩余部分的lrc歌词对应。这部分的处理我也不太会写😥

我尝试修复了一下黑名单的SAF适配,不过因为对Android开发确实不太熟悉,现在的问题是我不知道要如何从uri获取文件夹的绝对路径,但我已经不知道该怎么改了🤔你可以看看,如果需要的话,我可以提pr,然后一起来修从uri取文件夹路径的问题。 @rRemix https://github.com/rRemix/APlayer/compare/master...qjzcj2008:APlayer:SAF-Fix 目前的问题在于我不知道该如何从uri取得文件夹的绝对地址。   这是我目前使用的从uri获取文件夹路径的方法 https://github.com/qjzcj2008/APlayer/blob/331678d4d143636208446698aea282c73d181652/app/src/main/java/remix/myplayer/ui/activity/SettingActivity.kt#L133-L148   但不知道为什么这个方法无法获取到上级文件夹,仅能够获得当前文件夹的名称,并不能获取到文件夹的完整相对路径,使得我的这个修复版本仅能在添加一级目录时有效,并且挂载点信息似乎无法取得。   获取到的uri的content提供者都是`content://com.android.externalstorage.documents/`似乎无法区分文件是否来自外部储存(不过我这边的设备都不支持SD卡了,所以也没有进行测试),这部分我目前是用`Environment.getExternalStorageDirectory()`去和文件夹的相对路径进行拼接的(其实感觉和写死`/storage/emulated/0/`已经没啥差别了🤔)   获取到的uri中倒是包含文件夹的完整相对路径,但似乎对一些文件夹其uri也是特殊的,如果要从uri取的话感觉要做好几种状况的应对。   `content://com.android.externalstorage.documents/tree/primary:Lv1/Lv2/document/primary:Lv1/Lv2/`   `content://com.android.externalstorage.documents/tree/home:Lv1/document/home:Lv1`   分别对应`/Lv1/Lv2`和`/Document/Lv1`这两个路径,似乎对于document文件夹及其子文件夹的uri是特殊的(目前仅发现这个特例)   不知道这部分有没有什么更好的处理方法。 说起来,顺便翻了一下,似乎对接口返回歌词的处理是放在`src/main/java/remix/myplayer/lyric/LyricSearcher.kt`里的?之前研究了一下,Q音的接口要修可能比较难了,大部分接口都要求登录才可以使用,但酷狗那边的翻译感觉还有修一修的希望,要不看看后面有空我开个issue大家讨论一下看看能不能修一修?

> 看看歌曲文件的 Uri 能不能直接拿来匹配? 那要改的地方太多了🤔其他地方能跑还是最好不去动比较好🤔 用最粗暴的办法手搓了一个从uri拼接完整地址的办法🤔我这边试了一下倒是没问题,为了保险起见我只写了现在见到的两种形式的uri的转化,其他类型的uri遇到了直接抛null取消后面的流程🤔 我提pr了

酷狗歌词的接口还好,只要改一个参数就好,主要是后续的处理,文件解密和翻译合成。 https://github.com/rRemix/APlayer/blob/0d7f0e918134185b16c2e16f089015d4e62d4e97/app/src/main/java/remix/myplayer/request/network/HttpClient.kt#L133-L135 接口把这里参数的`lrc`改成`krc`就好 krc文件的解密算法在[这里](https://github.com/lyswhut/lx-music-desktop/issues/296#issuecomment-683285579)有别人的逆向结果和可用样例代码。 返回的数据结构和原来的一致,只是`content`的值变为了base64后的krc文件,krc解密后的文件样例如下 ``` [id:$00000000] [ar:*] [ti:*] [by:] [language:一个base64后的json] [00:00.000]*** [00:07.200]*** [00:14.400]*** ``` 对language行的base64解码后得到的文件样例如下 ```json { "content": [ { "language": 0, "lyricContent": [ ["***"], ["***"], ["***"] ], "type":...