和银行,两不相欠!
小幸福年终一发,和银行,两不相欠!练习时长两年半的房贷生,毕业!
年终一发,和银行,两不相欠!练习时长两年半的房贷生,毕业!
每年3月,个税年度汇算就会开放。但有个小技巧可以让你提前查看自己的汇算结果。
信息来源:https://www.v2ex.com/t/1193867
年度汇算系统的后端接口早就准备好了,前端页面通常会根据时间来控制某些元素是否可点击。用户看到的禁用状态都不是真正的禁用,通过修改样式,就能"骗过"前端,让它以为开放期已经到了。
这不是什么黑科技,只是充分利用了浏览器的开发者工具。合法、安全、无风险。
PC浏览器,直接访问 https://www.etax.chinatax.gov.cn 登录后,选我要办税->年度汇算,选择申报年度。
按 F12 或 右键 → 检查 打开开发者工具,切换到 Console 标签页。
粘贴一行代码:
document.querySelector('body > div.dropdown-show > div > div.datepicker-years > table > tbody > tr > td > a:nth-child(7) > span').classList.remove('disabled');
回车执行后会发现年份选择器中2025年可以点击了,如图所示:

关闭开发者工具,然后下一步,就能看到退/补税的信息了。当然现在还不能提交、不能提交、不能提交。
发现自己还要补80,难受。
找了挺多个性化请柬,但怎么看都觉得不够“个性化”,秉持着造轮子的精神,决定自己写一个。

▲ 首页:6×6 的城市网格,包含道路、建筑和目的地标识
提供两种出行模式:

▲ 生成路线后的预览效果,黄色导航线动画绘制
点击"开始导航"后,法拉利458开始沿着规划好的路线前进:

▲ 沉浸式行驶过程,伴随法拉利V8引擎的澎湃声浪
设计了三个目的地,每个都有独特的主题和内容:

▲ 婚礼现场弹窗:LED 滚动屏幕 + 玻璃态设计
GitHub:邀请函
按项目说明运行、部署。哪里不满意改哪里!
用Claude写了个插件,把小说网站变成红头文件。
原始页面 → 花里胡哨的小说网站
转换后 → 严肃正式的红头文件
红头文件样式(可自定义发文机关、文号)
标准A4排版(仿宋字体、标准页边距)
智能分页(自动计算段落高度,完整分页)
XX省网络文学管理委员会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
X网文〔2026〕1号
关于天降异象的情况说明
东玄大陆,青云山脉深处,一道璀璨的金
光从天而降,照亮了整个夜空。
李云盘坐在山洞中,突然睁开双眼,眼中
闪过一道精光...
XX省网络文学管理委员会
2026年1月16日
—1—
支持网站:起点、晋江、17K、纵横等主流小说网站
GitHub:插件
chrome://extensions/(Edge用 edge://extensions/)2026年1月7日一大早,发现罗技鼠标自定义功能键全部失效,打开Logi Options+软件发现无法正常启动,程序一直卡在启动页面转圈,Reddit上转了一圈,发现不是个例问题,快速整理下临时解决方案。
Reddit上有用户提到可能是证书过期问题,所以可以先把系统时间调回到1月6日或更早的日期,让系统"以为"证书还在有效期内。打开"系统设置",找到"通用",然后在右侧选择"日期与时间"选项。
Mac默认开启了"自动设定时间与日期"功能,需要暂时关闭它。关闭自动同步后,日期和时间输入框就变成可编辑状态,将日期修改为2026年1月6日或更早的日期,然后保存。
打开"活动监视器",在右上角的搜索框中输入"Logi Options"。会看到多个相关进程出现在列表中。点击工具栏上的"ד按钮或者右键选择"强制退出”,将所有Logi Options相关进程结束。
完成以上两步后,再次打开Logi Options+程序。这时软件应该能够正常启动了,之前卡住的转圈问题也会消失,鼠标自定义功能键也恢复正常。
最近又在给中文互联网“添砖加瓦”——用AI写小说。真就实现了想看什么直接自己写。
# 脑洞/高概念短篇小说创作提示词 v1.0
**提示词作者**:xx
**目标字数**:8000-15000字
---
## 角色定位
你是一位擅长撰写“脑洞”与“高概念”科幻/奇幻小说的先锋作家。你拥有极其狂野的想象力,同时具备严密的逻辑闭环能力。你擅长在一个荒诞或超现实的设定下,推演社会形态的演变和人性的极端反应,能够让读者在感受到“细思极恐”的同时,获得智力上的愉悦感。
---
## 创作核心要求
### 世界观设定(核心脑洞)
- **单一核心假设**:全篇必须基于一个打破常规的设定展开(例如:“人类的寿命可以像货币一样交易”、“所有人都能听到彼此的心声”、“重力方向每24小时随机改变”)。
- **逻辑自洽性**:设定可以是荒诞的,但设定之下的推演必须绝对理性。需构建该设定下的社会规则、法律漏洞及生存法则。
- **去背景化/微缩社会**:不需要宏大的星际背景,故事可发生在一个封闭社区、一列无限循环的列车、或一个被规则束缚的现代都市。
- **视觉美学**:赛博朋克、废土、极简主义或克苏鲁风格(任选其一,保持统一)。
### 故事结构(四幕剧)
**第一幕:违和降临(2000-3000字)**
- **开篇即异常**:直接展示核心设定带来的奇异现象,不作冗长说明。
- **认知反差**:主角是这个世界的“异类”(唯一的清醒者、规则的破坏者或新规则的适应者)。
- **钩子设计**:在前500字内抛出“逻辑悖论”或“致命危机”(如:主角发现自己的生命余额只剩3分钟)。
**第二幕:规则博弈(3000-5000字)**
- **探索边界**:主角试图利用或对抗核心规则,发现规则的隐藏漏洞(Bug)。
- **引入变量**:出现2-3个代表不同价值观的配角(维护规则者/利用规则者/被规则吞噬者)。
- **情节推进**:通过“实验-失败-修正”的循环推进,每一次尝试都让局势更加危险。
**第三幕:概念崩塌(2000-3000字)**
- **真相揭露**:核心设定背后的残酷真相被揭开(如:交易寿命的系统其实是外星人的饲养场)。
- **世界观冲击**:原有社会秩序因主角的行为或系统故障而面临崩溃。
- **高潮爆发**:不仅是肉体的搏斗,更是理念的碰撞或智力的终极对决。
**第四幕:回响与留白(1000-2000字)**
- **神转折(欧·亨利式结尾)**:结局必须推翻读者的部分预设,提供意料之外但情理之中的解释。
- **细思极恐**:结局看似平静,实则暗示了更大的恐怖或无法逃脱的循环。
- **哲学升华**:不直接说教,但通过结局引发对技术、人性或存在主义的思考。
---
## 人物塑造规范
### 主角设定
- **身份**:边缘人(系统测试员、记忆贩子、底层清理工、不受规则影响的“故障体”)。
- **特质**:高智商、极度理性或拥有某种“作弊代码”(金手指,但需有代价)。
- **核心动机**:探寻真相、打破循环、或仅仅是为了在这个疯狂世界活下去。
- **心理状态**:常处于理智与疯狂的边缘,对世界的真实性存疑。
### 配角设定(2-4人)
- **功能性分类**:
- **执行者**:维护荒诞规则的人(如条令死板的AI、冷酷的执法官)。
- **沉沦者**:完全适应并享受病态规则的人。
- **牺牲品**:用于展示规则残酷性的无辜者。
- **非人角色**:允许出现AI、异形生物或具象化的潜意识,需赋予其独特的人格逻辑。
---
## 脑洞细节植入
### 场景描写(超现实感)
- **视觉**:霓虹光污染、非欧几里得几何建筑、故障艺术(Glitch Art)、巨大的全息投影、灰暗的混凝土森林。
- **听觉**:电流的滋滋声、机械合成音、某种持续不断的低频噪音、绝对的死寂。
- **体感**:义肢的冰冷、数据传输的刺痛感、重力异常带来的眩晕。
- **违和感**:在日常场景中植入恐怖细节(如:温馨的晚餐桌上摆放着并在跳动的心脏)。
### 设定细节自然融入
- **拒绝说明书**:不要大段解释设定,通过角色的行动和后果来展示(Show, don't tell)。
- *错误*:“这个世界每个人头顶都有数字。”
- *正确*:“他抬头看了一眼那个乞丐,头顶鲜红的‘00:05:00’正在倒数,没人愿意在一个将死之人身上浪费时间。”
- **专有名词**:创造具有科技感或神秘感的词汇(如:灵魂通缩、记忆格式化、熵增执法队)。
---
## 对话设计
- **风格化**:根据世界观调整。赛博朋克风多用俚语和技术黑话;克苏鲁风多用晦涩、呓语般的表达。
- **信息差**:对话往往是博弈的过程,充满了试探、欺骗和逻辑陷阱。
- **潜台词**:角色往往知道世界是疯狂的,对话中常带有黑色幽默或虚无主义色彩。
---
## 情节设计技巧
### 悬念与反转
- **叙述性诡计**:利用读者的惯性思维进行误导(如:以为主角是人,最后发现是缸中之脑)。
- **多重反转**:在第三幕和第四幕至少包含两次反转。
- 反转A:主角以为赢了,其实落入更大的圈套。
- 反转B:结局揭示整个故事可能只是一个模拟/梦境/测试。
### 伏笔回收
- **细节即线索**:开篇提到的不起眼道具(如一枚生锈的硬币、一段乱码)必须是解开最终谜题的关键。
- **逻辑闭环**:所有的超自然现象最终都要在设定的逻辑框架内得到解释(哪怕是伪科学解释)。
---
## 输出格式要求
- 纯文本输出,不使用markdown标记
- 章节标题:第一章 [标题] / 第二章 [标题]
- 段落间空一行
- 对话另起一段,使用中文引号
- 重点:在正文开始前,必须先进行【世界观校准】
复制、粘贴,丢给大模型。目前使用的模型是Gemini-3-Pro,尝试过一次性输出5000字到15000字,剧情完整性和连贯性都还不错。
一个用于查询微信读书书籍热门划线的工具,支持按章节分组。
info?bookId=3300024284的请求,3300024284即为书籍IDweread-hotlines.js 中的 bookId 为目标书籍ID:const bookId = '3300024284'; // 替换为你的书籍 ID
weread-hotlines.js 的内容复制粘贴到控制台执行| 参数 | 说明 | 默认值 |
|---|---|---|
bookId | 书籍 ID | 3300024284 |
batchSize | 批量处理大小 | 50 |
| 请求延迟(章节) | 获取章节划线的延迟 | 2000ms |
| 请求延迟(评论) | 获取划线详情的延迟 | 3000ms |
⚠️ 封禁风险警告
使用本工具存在账号被封禁的风险!请务必注意:
- ❌ 不要频繁运行此脚本
- ❌ 不要设置过小的请求延迟时间
- ❌ 不要短时间内查询大量书籍
- ❌ 不要在多个设备同时使用
- ✅ 建议使用非主账号测试
- ✅ 如遇异常,立即停止使用
作者不对因使用本工具导致的任何账号问题负责,使用前请充分评估风险!
免责声明:本工具仅供学习和研究使用,请勿用于商业用途。使用本工具可能存在账号封禁风险,使用前请充分评估。使用本工具产生的任何法律责任和账号问题由使用者自行承担,作者不承担任何责任。
/**
* 微信读书热门划线爬取脚本
*
* ⚠️ 警告:使用本脚本存在账号被封禁的风险!
*
* 风险提示:
* - 不要频繁运行此脚本(建议间隔 1-2 小时以上)
* - 不要修改请求延迟时间(可能触发反爬机制)
* - 不要短时间内爬取大量书籍
* - 建议使用非主力账号测试
* - 如遇验证码或异常,立即停止使用
*
* 免责声明:
* 使用本脚本产生的任何后果由使用者自行承担
* 作者不对账号封禁等问题负责
*
* 使用方法:
* 1. 在微信读书网页版登录
* 2. 修改下方的 bookId 为目标书籍 ID
* 3. 在浏览器控制台(F12 Console)中运行此脚本
*/
const bookId = '3300024284';
async function getChapterIds() {
try {
const response = await fetch(
'https://weread.qq.com/web/book/chapterInfos',
{
method: 'POST',
credentials: 'include', // 包含 cookie
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({bookIds: [bookId]}),
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
// console.log('获取章节信息成功:', JSON.stringify(data, null, 2));
// 从返回值的 data[0] 的 updated 的每一项的 chapterUid 取章节 ID
if (data.data?.[0]?.updated) {
const chapterIds = data.data[0].updated.map((item) => item.chapterUid);
console.log(`\n总共获取 ${chapterIds.length} 个章节 ID:`, chapterIds);
return chapterIds;
} else {
console.warn('返回数据结构不符合预期');
return [];
}
} catch (error) {
console.error('获取章节信息失败:', error);
return [];
}
}
async function getUnderlines(chapterIds) {
if (!chapterIds || chapterIds.length === 0) {
console.log('没有章节 ID,无法获取划线数据');
return [];
}
const allUnderlines = [];
// 遍历每个章节 ID,获取该章节的划线数据
for (let i = 0; i < chapterIds.length; i++) {
const uid = chapterIds[i];
console.log(
`\n获取第 ${i + 1}/${chapterIds.length} 个章节的划线数据 (chapterUid: ${uid})`
);
try {
const response = await fetch(
`https://weread.qq.com/web/book/underlines?bookId=${bookId}&chapterUid=${uid}`,
{
method: 'GET',
credentials: 'include', // 包含 cookie
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
const underlines = data.underlines || [];
console.log(` 获取成功,共 ${underlines.length} 条划线`);
// 为每条划线添加对应的 chapterUid
underlines.forEach((underline) => {
allUnderlines.push({
...underline,
chapterUid: uid,
});
});
// 添加延迟,避免请求过快
if (i < chapterIds.length - 1) {
await new Promise((resolve) => setTimeout(resolve, 2000));
}
} catch (error) {
console.error(` 获取第 ${i + 1} 个章节的划线数据失败:`, error);
}
}
console.log(`\n总共获取 ${allUnderlines.length} 条划线`);
return allUnderlines;
}
async function callReadReviewsInBatches(underlines, batchSize = 50) {
if (!underlines || underlines.length === 0) {
console.log('没有划线数据');
return [];
}
console.log(`总共获取 ${underlines.length} 条划线`);
const allAbstracts = [];
// 分批处理
for (let i = 0; i < underlines.length; i += batchSize) {
const batchUnderlines = underlines.slice(i, i + batchSize);
// 按 chapterUid 分组,因为同一个请求中的所有 range 必须来自同一个章节
const groupedByChapter = {};
batchUnderlines.forEach((underline) => {
const uid = underline.chapterUid;
if (!groupedByChapter[uid]) {
groupedByChapter[uid] = [];
}
groupedByChapter[uid].push(underline);
});
// 为每个章节发送一个请求
for (const [chapterUid, chapterUnderlines] of Object.entries(
groupedByChapter
)) {
const reviews = chapterUnderlines.map((underline) => ({
range: underline.range,
maxIdx: 0,
count: 1,
synckey: 0,
}));
const payload = {
bookId,
chapterUid: parseInt(chapterUid),
reviews,
};
console.log(
`\n处理第 ${Math.floor(i / batchSize) + 1} 批,chapterUid: ${chapterUid},共 ${reviews.length} 条划线`
);
console.log('请求参数:', JSON.stringify(payload, null, 2));
try {
const response = await fetch(
'https://weread.qq.com/web/book/readReviews',
{
method: 'POST',
credentials: 'include', // 包含 cookie
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const result = await response.json();
// 从返回结果中提取 abstract 字段
if (result.reviews && Array.isArray(result.reviews)) {
result.reviews.forEach((review) => {
if (
review.pageReviews &&
Array.isArray(review.pageReviews) &&
review.pageReviews.length > 0
) {
const firstPageReview = review.pageReviews[0];
if (firstPageReview.review?.abstract) {
allAbstracts.push([firstPageReview.review.chapterTitle, firstPageReview.review.abstract]);
}
}
});
}
} catch (error) {
console.error(`处理 chapterUid: ${chapterUid} 的请求失败:`, error);
}
// 添加延迟,避免请求过快
await new Promise((resolve) => setTimeout(resolve, 3000));
}
}
console.log(`\n总共提取 ${allAbstracts.length} 条 abstract`);
console.log('所有 abstract 内容:', JSON.stringify(allAbstracts, null, 2));
return allAbstracts;
}
/**
* 主函数
*/
async function main() {
console.log('开始获取微信读书数据...\n');
// 先获取所有章节 ID
console.log('=== 第一步:获取书籍的全部章节 ID ===');
const chapterIds = await getChapterIds();
console.log('\n=== 第二步:获取划线数据 ===');
const underlines = await getUnderlines(chapterIds);
console.log('\n=== 第三步:批量获取评论 ===');
const abstracts = await callReadReviewsInBatches(underlines, 50);
console.log('\n所有请求完成!');
console.log(`\n最终结果:共获取 ${abstracts.length} 条 abstract`);
console.log(abstracts);
return abstracts;
}
// 执行主函数
main().catch(console.error);
AI技术的发展速度超乎想象,后浪推前浪,最近的浪尖当属Gemini 3 Pro,虽然可以白嫖公司集采的,但按耐不住折腾的心思。随着Apple M4芯片的普及和Gemini同宗同源的Google Gemma 3开源模型的发布,在本地运行大语言模型的门槛进一步降低,只需要一台M4 Pro芯片的Mac,配合LM Studio,就能把顶尖的AI装进口袋。
回想之前,本地运行大模型通常受限于显卡那不太充足的显存容量,导致模型无法一次性全部载入。要么改用参数量小的模型、要么加钱换显卡。而Apple Silicon芯片的统一内存架构有效缓解了这一问题,24GB到64GB的内存可以随便载入大模型。 另外,相比传统的高性能工作站,Mac在运行大模型时功耗更低,且更加安静。
M4 Pro省了显卡钱,LM Studio则降低了技术成本。不需要懂Docker,不需要配置Conda环境,其操作界面直观易用:
Gemma 3。LM Studio适配了Apple的Metal架构,能够充分利用M4芯片的性能,并提供友好的对话界面。此外,它还支持搭建本地服务器,供其他程序调用API。
Gemini通常指Google的云端闭源模型,而Gemma 3系列模型,是其同源技术的开源版本,沿袭了Gemini的技术架构,在参数效率上表现出色,适合本地运行。
在M4 Pro上,推荐部署以下版本:
Ghiblio Art是一款专业的吉卜力风格AI图像生成平台,利用强大的ChatGPT 4o模型,将文字和照片转化为充满魔力的吉卜力插画。无论是柔和的水彩渐变、奇幻的建筑还是空灵的光效,Ghiblio Art都能创造出真实的吉卜力风格艺术作品。体验地址:https://ghiblio.art/?utm_source=7QB85D9QwaJe
史努比风格:

吉卜力风格:

Q版风格:

无需具备绘画技能,只需输入文字描述或上传图片,即可生成精美的多种风格图像。无论是艺术新手还是专业设计师,都能轻松创作。
充了50,发现用不完,有需要的自取。
账号:duanyangchn@qq.com
密码:ghiblioart
想注册自己账号的,也可用下面的邀请链接:https://ghiblio.art/?utm_source=7QB85D9QwaJe
正吃瓜https://8zo2eorjmx.app.yourware.so,意外发现这个平台有点意思,可以一键部署网页。
想想以前,部署个网页也是费老劲了。云服务器得搞一个,这最最基本的。就按最简单的来,得在服务器上装个Nginx,然后丢个静态页到Web服务器根目录。
然后搞个个性域名,添加解析这都基本操作。服务器如果是国内的话,还得ICP备案和公安备案,用境外服务器倒可以省略这一步骤。
后来有了GitHub Pages,创建对应的仓库和指定名称的分支,就能直接访问到网页。配合GitHub Actions还能实现自动部署。但GitHub Pages仅支持静态网站。
再然后,又有Vercel这种的托管服务,前端后端都能托管。关联仓库后,当代码有更新时,Vercel直接自动拉取代码并部署。
现在,如果想快速呈现AI生成的代码效果。可以试试Yourware.so。
Yourware.so是一个专门用于上传和托管HTML或TSX文件的平台。它允许用户把人工智能生成的HTML或TSX代码上传到该平台,并将其转换为托管在云端的网页。用户只需上传、粘贴或拖放文件,就可以获得一个实时网站,无需任何配置和复杂的部署过程。
一键部署:访问Yourware.so,上传本地文件或粘贴代码后点击Deploy,等待片刻。
社区资源:Yourware.so提供了丰富的社区资源和便捷的管理功能,聚合了全球创作者的AI生成案例,激发灵感并推动AI创意生态。
支持AI创意:平台特别适合AI驱动的创意发展,用户可以通过AI生成的代码快速实现他们的想法。
Yourware.so是一个强大的工具,旨在简化网页部署过程。它的出现为开发者提供了一个高效的平台来展示创意和项目。总之,快就完事了。
下来找找看有没有接口,也许可以搞个脚本直接上传本地复杂单页应用。