LinuxDo 新帖推送
177 subscribers
248K photos
308K links
Download Telegram
标题: ChatGPT Codex中的套餐和X个版本有啥用?
作者: #HappyDIY
板块: #开发调优
编号: 1207049
帖子: https://linux.do/t/topic/1207049
时间: 2025-11-22 21:21:00
摘要:
这两玩意儿是啥意思,点了有啥效果
标题: 节点导入问题
作者: #xwj ddd
板块: #前沿快讯
编号: 1207051
帖子: https://linux.do/t/topic/1207051
时间: 2025-11-22 21:21:18
摘要:
为什么订阅链接能导入clash,导入v2rany全是-1
标题: 谷歌 反重力2api直接用
作者: #Qoney
板块: #搞七捻三
编号: 1207057
帖子: https://linux.do/t/topic/1207057
时间: 2025-11-22 21:25:08
摘要:
直接获取认证然后就可以直接2api用了,不用登陆,嘿嘿嘿
标题: CC Switch 更新 v3.7.0, 带来 Gemini CLI 支持、skills 市场、提示词管理、统一 MCP 架构、深链接协议、冲突环境变量检测等多项更新
作者: #Jason
板块: #开发调优
编号: 1207061
帖子: https://linux.do/t/topic/1207061
时间: 2025-11-22 21:26:02
摘要:
最初的发布帖好像因为时间太久无法编辑了,因此发了这个新帖。
最关键改动:标题栏由蓝色改为了系统主题色(为什么大家都不喜欢蓝色呜呜呜)
新增对 Gemini CLI 的完整支持,包括供应商配置、MCP 和提示词,为 Gemini 3.0 的到来做好准备。

新增提示词管理,在多种预设提示词之间快速切换,首次运行会导入当前使用的

统一 MCP 管理面板,将三个 app 的 MCP 数据经由格式转换统一管理。注:由于 codex 的格式比较独特,转换过程会丢失自定义数据,所以 MCP 相关编辑请尽量通过本软件操作,后续版本会解决这个问题。

skills 市场,内置了官方的和一些我比较喜欢的。

深链接协议,供应商现在可以生成深度链接,让 CC Switch 的用户一键导入供应商数据,项目内的 deplink.html 是示例文件,使用手册正在写作中。
下版本的开发计划:新 UI、数据迁移到 sqlite 存储、多协议转换本地代理
标题: [LinkManager] 基于 Cloudflare Workers + KV 的公益站链接管理工具
作者: #rick084
板块: #福利羊毛
编号: 1207066
帖子: https://linux.do/t/topic/1207066
时间: 2025-11-22 21:27:23
摘要:
看到站内有很多佬友上线了自己的公益站,每周都能看到新的公益站发布(让我们感谢佬友的付出)
还有很多社区大学,让孩子们有学上,但是内容太多有时候看完想找的时候想不起来,添加书签找起来也很麻烦(我还mark了其他学习类帖子),有时还需要记录它们的签到地址
我自己原来的做法是把帖子链接粘贴在一个笔记中,但是随着链接增多也变得难以快速查找
所以以此为契机何不开发一个工具用来记录,这就是 LinkManager 项目的来历
功能介绍:


分类管理链接(支持多分类)


子链接 / 快捷入口(例如:GitHub Issues / PRs、控制台入口等)


支持按「标题 / 描述 / 子链接」搜索


拖拽排序分类和链接


数据备份 / 导入(JSON 文件)


简单密码保护(默认密码,可在线修改)



(为了保护公益站隐私,这里使用的是演示案例),公益站请佬友们自行在L站寻找
每个网站用卡片形式展示,可以添加 sub-links 比如 签到页
项目已在github上开源
项目地址: GitHub - morty626/link-manager
支持一键部署到 cf

最后感谢佬友们的公益站让大家能轻松蹬上AI
最后最后 spoiler
标题: 转生成金色天使,你就要坐上你的黄金王座了……
作者: #stevessr
板块: #搞七捻三
编号: 1207070
帖子: https://linux.do/t/topic/1207070
时间: 2025-11-22 21:28:09
摘要:
你知道,你来到了
标题: Nano banana pro渲染建模作品,效果惊艳
作者: #bennieqin
板块: #搞七捻三
编号: 1207072
帖子: https://linux.do/t/topic/1207072
时间: 2025-11-22 21:29:16
摘要:
起因
我近期一直在建模,弄一个模型车库。
今晚突然想出个渲染图,我也懒得用blender重新倒入渲染布景了,直接截图扔给gemini。

我的描述也挺简单的,没什么过分的描述。他给我的结果如下

这个效果真的惊艳到我了,只不过放大后会发现灯光部分有很多噪点,不能放大看,于是我又去AI图片修复搞了一下。
最后结果如下

最后的结果还是很满意的,已经完全符合我自己的需求了
标题: 防止邮件进入自己的 Gmail 垃圾箱
作者: #为什么是我
板块: #开发调优
编号: 1207085
帖子: https://linux.do/t/topic/1207085
时间: 2025-11-22 21:34:51
摘要:
这几天逛论坛总发现有佬吐槽论坛以及各类重要网站的邮件被送进垃圾箱,而且都没有什么好办法 
在这里分享一个我自己一直在用的配置
首先进入网页版 Gmail,单击搜索框右部的过滤器

在“不包含”一栏输入一串乱码(只要是绝对不会出现在邮件中的字符串就可以)

然后选中“不发送到垃圾箱”一项,保存即可

如不确定,还可以在“所有设置-过滤器”中检查一下

于此,所有不包含这串乱码的邮件都不会被送进垃圾场了 缺点是真正的垃圾邮件也会进入收件箱
至于 Google 为什么这么多年还不愿意出直接关闭垃圾邮件过滤器的选项,spoiler
标题: 怎么避免AI在代码里偷偷拉💩
作者: #辰
板块: #开发调优
编号: 1207092
帖子: https://linux.do/t/topic/1207092
时间: 2025-11-22 21:36:28
摘要:
我目前使用Claude Code + GLM6 帮我编写代码。由于是我自己的业余项目,我基本上不写代码,全给它提需求。我发现一开始还好。能快速出效果,但是随着系统代码越来越多,我发现大部分代码都是屎山,并且当我表达我的需求后,它挡着我的面继续,我很难受。然后当出现问题时,它也会把自己绕晕。只能我来看屎山代码,自己解决
标题: 来比算力吧OwO
作者: #550W炸了
板块: #开发调优
编号: 1207097
帖子: https://linux.do/t/topic/1207097
时间: 2025-11-22 21:37:46
摘要:
密文:$argon2id$v=19$m=1024,t=1,p=1$CgsMDQ4PEBESExQVFhcYGQ$A0rCBJLPqpOxsJ5DVyuuDURAivoI-vZBsIosqaW-VQo

加密代码:
#include "argon2id.h"
#include <QString>
#include <QStringList>
#include <QRandomGenerator>
#include <QCryptographicHash>
#include <cstring>
#include <algorithm>

namespace argon2id {

// ==================== Blake2b实现 ====================

// Blake2b初始化向量
const uint64_t Argon2id::Blake2b::IV[8] = {
0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
};

// Blake2b置换表
const uint8_t Argon2id::Blake2b::SIGMA[12][16] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3},
{11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4},
{7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8},
{9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13},
{2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9},
{12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11},
{13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10},
{6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5},
{10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0},
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3}
};

uint64_t Argon2id::Blake2b::rotr64(uint64_t w, unsigned c) {
return (w >> c) | (w << (64 - c));
}

void Argon2id::Blake2b::G(uint64_t& a, uint64_t& b, uint64_t& c, uint64_t& d,
uint64_t x, uint64_t y) {
a = a + b + x;
d = rotr64(d ^ a, 32);
c = c + d;
b = rotr64(b ^ c, 24);
a = a + b + y;
d = rotr64(d ^ a, 16);
c = c + d;
b = rotr64(b ^ c, 63);
}

void Argon2id::Blake2b::compress(Context& ctx, const uint8_t* block) {
uint64_t m[16];
uint64_t v[16];

// 加载消息块
for (size_t i = 0; i < 16; i++) {
m[i] = load64(block + i * 8);
}

// 初始化工作向量
for (size_t i = 0; i < 8; i++) {
v[i] = ctx.h[i];
}
for (size_t i = 0; i < 8; i++) {
v[i + 8] = IV[i];
}

v[12] ^= ctx.t[0];
v[13] ^= ctx.t[1];
v[14] ^= ctx.f[0];
v[15] ^= ctx.f[1];

// 12轮混合
for (size_t i = 0; i < 12; i++) {
G(v[0], v[4], v[8], v[12], m[SIGMA[i][0]], m[SIGMA[i][1]]);
G(v[1], v[5], v[9], v[13], m[SIGMA[i][2]], m[SIGMA[i][3]]);
G(v[2], v[6], v[10], v[14], m[SIGMA[i][4]], m[SIGMA[i][5]]);
G(v[3], v[7], v[11], v[15], m[SIGMA[i][6]], m[SIGMA[i][7]]);
G(v[0], v[5], v[10], v[15], m[SIGMA[i][8]], m[SIGMA[i][9]]);
G(v[1], v[6], v[11], v[12], m[SIGMA[i][10]], m[SIGMA[i][11]]);
G(v[2], v[7], v[8], v[13], m[SIGMA[i][12]], m[SIGMA[i][13]]);
G(v[3], v[4], v[9], v[14], m[SIGMA[i][14]], m[SIGMA[i][15]]);
}

// 更新状态
for (size_t i = 0; i < 8; i++) {
ctx.h[i] ^= v[i] ^ v[i + 8];
}
}

void Argon2id::Blake2b::init(Context& ctx, uint32_t outlen,
const uint8_t* key, size_t keylen) {
memset(&ctx, 0, sizeof(Context));
ctx.outlen = outlen;

// 初始化状态
for (size_t i = 0; i < 8; i++) {
ctx.h[i] = IV[i];
}

// 参数块
ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen;

// 如果有密钥,处理密钥块
if (keylen > 0) {
uint8_t block[BLAKE2B_BLOCKBYTES];
memset(block, 0, BLAKE2B_BLOCKBYTES);
memcpy(block, key, keylen);
update(ctx, block, BLAKE2B_BLOCKBYTES);
memset(block, 0, BLAKE2B_BLOCKBYTES);
}
}

void Argon2id::Blake2b::update(Context& ctx, const uint8_t* in, size_t inlen) {
if (inlen == 0) return;

size_t left = ctx.buflen;
size_t fill = BLAKE2B_BLOCKBYTES - left;

if (inlen > fill) {
ctx.buflen = 0;
// 填充缓冲区并压缩
memcpy(ctx.buf + left, in, fill);