开源项目分享:LiveGalGame

该应用能让用户在与女生聊天时能够像玩 GalGame(美少女游戏)一样显示对话选项和字幕。目前依赖语音识别能在检测到疑问词时弹出对话框,可离线运行且尚未接入 AI 功能。

开发者表示后续将加入更多功能。该项目在 GitHub 上已获得 18 个星标,开发者欢迎其他人自由开发和添加功能。

下载链接
GitHub
该mod修复了地球Online GalGame玩家和女生聊天没有对话框的bug

💡 本频道仅作项目分享,风险自控

🍀在花频道 🍵茶馆 📮投稿新鲜事
#AI #视频处理 #工具

🍆 Lada - 一个专为成人视频去马赛克的 AI 工具

⬇️下载页面 | 镜像下载

Lada 主要用于恢复成人视频中的像素化或马赛克场景,同时支持命令行和图形界面使用。最新版本也支持中文

在一些论坛看了许多 LADA 去除马赛克的效果,许多成品已经可以和无码媲美了。当然具体还是得看片源的清晰度以及马赛克的厚薄程度。B站也有不少教程可以自行搜索学习

📮投稿 📢频道 💬群聊 🔎索引
Book Searcher,非常强大图书搜索工具

虽然页面做得比较简单,但广,并且也支持搜索,搜索很快,能1秒内搜索到很多书籍数据丰富搜索模式支持“filter”模式(默认,所条件必须匹配)“explore”模式(只需满足部分条件)。

可下载多种电子书格式,epub mobi pdf 等多种格式,也可以线预览阅读。亲测搜索阅读下载速度非常快,可以按 书名、作者、出版社、扩展名、语言等 进行搜索,点击搜索按钮,查看搜索结果,点击书籍详情页面,可查看详细信息并直接下载或线预览。

🧘 网址: 资源链接

💞 感谢 [ 来自 供稿 ]
💭 中文 | 💭 聊天 | 💭 投稿
时光图书馆
超 15W 本书籍免费下载,提供老报纸、杂志、古籍
主要古书,古籍,旧杂志,报纸,地址志等。需要可以收藏下载看看

🧘 网址: 资源链接

💞 感谢 [ 来自 供稿 ]
💭 中文 | 💭 聊天 | 💭 投稿
#脚本 #论坛

Discourse 新标签页

Discourse 论坛体验优化脚本,可在新标签页打开主题帖、用户主页、附件、弹窗、侧边栏等页面,也可选择后台打开,并提供悬浮球快速切换,脚本会自动识别 Discourse 站点,支持域名黑白名单,每条规则都可独立启用或禁用,安装前后浏览速度无感知差异,完全免费。

Discourse 论坛系统应用还是比较广泛的,包括 OpenAI、Mozilla、Docker、Red Hat、Linux.do、小众软件等社区都在使用,有需要的可以尝试一下。

https://greasyfork.org/zh-CN/scripts/552284

频道 @WidgetChannel
#网盘 #解析

123网盘文件解析

如题,输入 123 云盘文件分享链接,即可解析出直链进行下载,支持输入提取码,点击"解析链接"即可,支持浏览文件列表,点击文件名可直接下载,文件夹可以点击展开/折叠,查看内部文件,支持递归解析文件夹内的所有文件,免费使用,无需注册。

123云盘非会员用户超过 1 G下载大小后会限制下载,可以收藏备用一下,适合轻度用户使用,至于能用多久就不知道了。

https://www.kanxizai.cn/123pan/

频道 @WidgetChannel
#插件 #公众号 #开源

mp-vx-insight

微信公众号辅助插件,可一键获取文章封面、标题、作者、简介及历史文章等信息,适合公众号运营使用,免费开源。

🐙 项目地址

频道 @Edgebyte
#插图 #素材

Vector Shelf

一个日本的插画素材网站,内容不是特别多,但质量非常不错,并且所有插画都是免费可商用的,从事设计工作的可以收藏一下,无需注册,即可直接下载,且提供 Ai/PNG/SVG 三种格式。

https://vectorshelf.com

频道 @WidgetChannel
#掌机 #数据库 #百科

Handhelds Space

掌机规格数据库与对比平台,包括便携游戏机、PC 手持机、复古掌机等数百款设备,并提供品牌、发布日期、重量、操作系统、屏幕尺寸、分辨率、处理器、内存、电池等详尽规格,可通过品牌、重量、屏幕比例、操作系统等条件进行筛选搜索,想要比较不同掌机参数或者了解新机发布信息的都可以看看,完全免费,无需注册。

https://handhelds.space

频道 @WidgetChannel
#抖音 #油猴 #脚本

📱 抖音推荐影响器

🐵 油猴脚本

抖音推荐影响器是一款基于 AI 的自动化工具,通过调用大语言模型分析视频内容(标题、作者、标签),根据你的偏好规则自动执行点赞、忽略或"不感兴趣"操作,持续向推荐算法反馈你的真实需求。

该脚本实现功能需要 AI API Key!

📮投稿 📢频道 💬群聊 🔎索引
#图片 #压缩 #开源

PicSharp

图片压缩工具,支持本地压缩和集成 TinyPNG 两种方式,优先使用 TinyPNG 获取最佳压缩比,并在失败时自动切换到本地压缩,支持批量处理、新图片自动压缩、剪贴板粘贴、有损/无损压缩切换、压缩等级、格式转换等,免费开源,适用于 MacOS、Windows、Linux 系统。

🐙 GitHub

频道 @WidgetChannel
#Mastodon #开源

Mastodon instances

Mastodon 实例搜索服务,可根据语言、用户量、管理模式等维度筛选出合适的 Mastodon 服务器,并可查看各实例的注册人数、活跃度、安全评级与连通情况,玩长毛象社区的可以体验一下,免费使用,无需注册。

https://instances.social

频道 @WidgetChannel
// 在 B 站打开任意 page(已登录),在控制台粘贴运行
const uids = [1042653845,
1055149070,
1075400468,
1148923121,
1152997930,
1188004959,
1208114979,
1227735707,
1252039983,
1257852431,
1302669433,
1356882480,
1430439192,
1627242161,
1642531925,
1655279349,
1720634591,
1743345026,
1798118517,
1806922031,
1817661914,
1826766269,
1859459400,
1919627194,
1926952280,
1956866386,
1957313739,
1987938455,
1992873935,
2024349971,
2067273601,
2072500476,
2101682498,
2103756604,
2115931056,
2118239887,
2126699792];

// 从 document.cookie 里尝试提取 csrf token bili_jct
function getCookie(name) {
  const m = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]*)'));
  return m ? decodeURIComponent(m[2]) : '';
}
const bili_jct = getCookie('bili_jct');
if(!bili_jct) {
  console.error('无法找到 bili_jct,请确保已登录并且 cookie 可用');
}

async function blockUid(uid) {
  const url = 'https://api.bilibili.com/x/relation/modify?statistics=%7B%22appId%22:100,%22platform%22:5%7D';
  const body = new URLSearchParams({
    fid: String(uid),
    act: '5',
    re_src: '11',
    gaia_source: 'web_main',
    extend_content: JSON.stringify({ entity: 'user', entity_id: String(uid) }),
    csrf: bili_jct
  });
  const resp = await fetch(url, {
    method: 'POST',
    headers: {
      'content-type': 'application/x-www-form-urlencoded',
      'origin': 'https://space.bilibili.com',
      'referer': `https://space.bilibili.com/${uid}/dynamic`,
    },
    body: body.toString(),
    credentials: 'include'
  });
  const j = await resp.json().catch(()=>null);
  return { uid, status: resp.status, body: j ?? null };
}

(async () => {
  for (const uid of uids) {
    // 可选延时: await new Promise(r=>setTimeout(r, 300));
    const r = await blockUid(uid);
    console.log(r);
  }
  console.log('finished');
})();
Back to Top