跳转到内容

小天管理

管理员
  • 注册日期

  • 最后上线

小天管理 发表的所有内容

  1. 1. 具体问题简述 我开发了一个 Tampermonkey 脚本,但是往往需要手动刷新页面才能触发。请教该如何优化。(代码附在最后面) 2. 脚本功能描述 inSpirehep.net这个网站可以复制文献的BibTeX引文信息(通过点击文献左下角的cite实现),现在我想在BibTeX内容中加入一个inSpirehep.net网站的编号。为此我使用 Tampermonkey 脚本在文献的右下角添加了一个Copy BibTeX to Clipboard的按钮,点击按钮可以将加入编号的BibTeX内容复制到系统剪贴板。 现在的问题是,这个脚本往往需要重新刷新页面才能触发,在第一次展示文献列表的时候不会出现。不知道该如何修复。PS ,这份代码也是在 ChatGPT 协助下完成的,本人完全没有 JS 开发经验。希望能有高手指点一二。 3. 我的原始代码 // ==UserScript== // @name Copy BibTeX to Clipboard-v2 // @version 2.0 // @description Adds a button to fetch data and copy it to clipboard // @author Chipmunker // @match https://inspirehep.net/literature* // @run-at document-end // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_notification // ==/UserScript== (function () { 'use strict'; var maxAttempts = 200; // 最大尝试次数 var attempts = 0; // 当前尝试次数 var copyBtnText = "Copy BibTeX to Clipboard"; var copyBtnColor = "#000008"; var copiedBtnText = "Data Copied to Clipboard"; var copiedBtnColor = "#f44336"; var showDuration = 5000; // ms var regexPattern = /^https:\/\/inspirehep.net\/literature\/(\d+)$/; // 按钮的点击事件处理函数 function CopyToClipOnClick(button, inspireID) { // 发送 GET 请求 GM_xmlhttpRequest({ method: 'GET', url: 'https://inspirehep.net/api/literature/' + inspireID, // 替换为你要请求的 API URL headers: { 'authority': 'inspirehep.net', 'accept': 'application/x-bibtex' }, onload: function (response) { // 获取响应数据 var data = response.responseText; // console.log("|" + data + "|"); // 为 BibTeX 添加 inspireID let BibInspireID = data.replace(/\n\}\n$/, ",\n inspirehepID = \"" + inspireID + "\"\n}\n"); // 将数据写入系统剪贴板 GM_setClipboard(BibInspireID); // 修改复制按钮并在一秒后修复 var textSpan = button.querySelector('.v-top, #span-' + inspireID); textSpan.innerText = copiedBtnText; textSpan.style.color = copiedBtnColor; setTimeout(function () { textSpan.innerText = copyBtnText; textSpan.style.color = copyBtnColor; }, showDuration); // 提示用户数据已复制 // alert('Data copied to clipboard: \n' + BibInspireID); GM_notification({ text: BibInspireID, title: copiedBtnText, // url: 'https:/example.com/', onclick: (event) => { // The userscript is still running, so don't open example.com // event.preventDefault(); // Display an alert message instead // alert('I was clicked!') console.log('NotificationClick') } }); } }); } function findRefSearchBtnAll() { var intervalId = setInterval(function () { // 查找 ref Search button var refSearchBtnAll = document.querySelectorAll('[data-test-id="reference-search-button"]'); if (refSearchBtnAll.length > 0) { // 找到了 ref Search button 元素,可以执行相应的操作 clearInterval(intervalId); // 停止轮询 console.log('找到了 ref Search button 元素'); var Btn = document.querySelector('.CopyBtn'); if (Btn) { return; } for (var refSearchBtn of refSearchBtnAll) { var button = createCopyBtn(refSearchBtn, copyBtnText); // 按钮点击事件处理函数 button.addEventListener('click', function () { var inspireID = this.id; CopyToClipOnClick(this, inspireID); }); } } else { attempts++; // 增加尝试次数 // console.log('未找到 ref Search button 元素'); if (attempts >= maxAttempts) { clearInterval(intervalId); // 达到最大尝试次数,停止轮询 console.log('未找到 ref Search button 元素, 达到最大尝试次数'); } } }, 100); // 每隔 100 毫秒钟检查一次 } const observer = new MutationObserver(function (mutationsList, observer) { // 在 div 变化时重新运行脚本的代码 // 例如,重新加载页面 // location.reload(); findRefSearchBtnAll(); }); var currentURL = window.location.href; if (regexPattern.test(currentURL)) { findRefSearchBtnAll(); } else { findRefSearchBtnAll(); // 监听目标 div 的变化 const targetDiv = document.querySelector('[class="ant-col ant-col-xs-24 ant-col-lg-17"]');//'[data-test-id="search-results"]'); if (targetDiv) { observer.observe(targetDiv, { attributes: false, childList: true, subtree: true }); } } })(); function createCopyBtn(refSearchBtn, copyBtnText) { var refSearchSpan = refSearchBtn.parentNode; // 构造 copy icon var copyImgSpan = document.createElement('span'); copyImgSpan.role = "img"; copyImgSpan.innerHTML = '<svg viewBox="64 64 896 896" focusable="false" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg>'; // 构造 icon span var iconSpan = document.createElement('span'); iconSpan.className = "icon"; iconSpan.appendChild(copyImgSpan); // 获取文献 ID var inspireMatch = refSearchBtn.href.match(/citedby:recid:(\d+)$/); var inspireID = inspireMatch[1]; // 构造 __IconText__ var IconTextSpan = document.createElement("span"); IconTextSpan.className = "__IconText__"; var textSpan = document.createElement("span"); textSpan.className = "v-top"; textSpan.innerText = copyBtnText; // "Copy BibTeX to Clipboard"; textSpan.id = "span-" + inspireID; IconTextSpan.appendChild(iconSpan); IconTextSpan.appendChild(textSpan); // 构造 Button var button = document.createElement('button'); button.type = "button"; button.id = inspireID; button.className = "CopyBtn"; button.appendChild(IconTextSpan); var UserActionSpan = document.createElement("span"); UserActionSpan.className = "__UserAction__"; UserActionSpan.appendChild(button); refSearchSpan.parentElement.insertBefore(UserActionSpan, refSearchSpan); return button; }
  2. 分享一下国庆折腾出来的资产跟踪统计的微信小程序,终于备案过了 不知道大家有没有这样的诉求,我买了一些基金股票,都分布在不同的 app 里面,支付宝、富途、同花顺、加密货币之类的 没有一个地方可以把所有资产都统计起来做一个跟踪,每天更新所有资产的价格,并做一些简单的统计分析 之前一直写了一个 python 脚本放在服务器上每天自动去爬 国庆正好没事做,加上想体验一下大家说的 Cursor 到底有多好用 作为一个前端知识停留在 html/css 的老同志,自己折腾了一个小程序出来自己用,欢迎大家体验~~~ 不得不说 Cursor 真的好用,现在实现的效果完全超出的我前端水平( 0 水平) 想要什么样式和效果直接输入指令就好,增加 loading 页,连 css 的动画都给你生成出来 主界面 主要是展示你配置的一些资产,悬浮按钮里面有一些开关用来调整展示样式,以及筛选排序的功能 随便添加了几个,昨天都绿得厉害………… 资产的价格是每天早上八点的样子更新的 添加配置 支持基本所有股票、基金的搜索添加,另外还有一些特殊资产比如现金、黄金和加密货币,加密货币目前只有 BTC/ETH ,主要是我自己不怎么持有,先简单做了一下 资产分析 对你配置的资产从类型和风险上进行一些分析和评估,看看就好,比较简单 第三个调整建议我重点说下,之前学了一种资产配置的方法: 比如放 30%到高风险资产里 如果涨了,那就超过 30%,那么就可以减仓 如果跌了,那就低于 30%,那么就加仓。 这是我了解的最简单的配置方式,还不用考虑止盈策略,风险偏好低的朋友可以参考下。这其实也是我想统计各个地方资产的出发点。 后话 后面会再增加一些资产导入(感觉挺难,估计得做 ocr 了)、导出的功能,大家可以先手动配一下 目前的状态基本完全达成了我自己的需求 大家还有什么想法可以提一下,我看看能不能加上去
  3. 或者说独生子有什么娱乐项目是能够在放学后写完作业自己打发时间的? 因为有时候家长不一定有时间,同学或者同龄人也不一定有空
  4. iPhone 12 更新 iOS 18.0.1 后蜂窝网络异常,表现为手机有信号有网络,但是网络无法正常使用,或者极慢,比如微信需要很久的连接中和收取中才加载完毕,发一条消息也需要几分钟;大多数软件显示无网络。Wi-Fi 下一切正常。 搜了下貌似不是个例 https://discussionschinese.apple.com/thread/255795355?sortBy=rank 这个问题是只出现在 iPhone 12 么?有什么解决方式么?
  5. root 方面我属于小白刚入门 百度后发现 新发布的手机里 小米必须社区 5 级,约等于不能 root , 一加可以直接 root ? 其余品牌有说能的有说不能的我懵了 打算年底之前买个新手机希望是安卓能 root 的 是只能选一加了吗?
  6. https://github.com/Yiling-J/theine-go 直接放上最新的 100% read/write throughput benchmark 结果,其他比例以及缓存命中率可以看 Readme: 100% read (cpu 8/16/32) goos: linux goarch: amd64 pkg: github.com/maypok86/benchmarks/throughput cpu: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz BenchmarkCache/zipf_otter_reads=100%,writes=0%-8 88954334 14.78 ns/op 67648151 ops/s BenchmarkCache/zipf_theine_reads=100%,writes=0%-8 51908306 21.87 ns/op 45729075 ops/s BenchmarkCache/zipf_ristretto_reads=100%,writes=0%-8 27217994 42.36 ns/op 23606992 ops/s BenchmarkCache/zipf_otter_reads=100%,writes=0%-16 132372591 8.397 ns/op 119086508 ops/s BenchmarkCache/zipf_theine_reads=100%,writes=0%-16 85420364 13.78 ns/op 72549558 ops/s BenchmarkCache/zipf_ristretto_reads=100%,writes=0%-16 47790158 25.17 ns/op 39734070 ops/s BenchmarkCache/zipf_otter_reads=100%,writes=0%-32 174121321 7.078 ns/op 141273879 ops/s BenchmarkCache/zipf_theine_reads=100%,writes=0%-32 118185849 10.45 ns/op 95703790 ops/s BenchmarkCache/zipf_ristretto_reads=100%,writes=0%-32 66458452 18.85 ns/op 53055079 ops/s 100% write (cpu 8/16/32) goos: linux goarch: amd64 pkg: github.com/maypok86/benchmarks/throughput cpu: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz BenchmarkCache/zipf_otter_reads=0%,writes=100%-8 1567917 723.0 ns/op 1383080 ops/s BenchmarkCache/zipf_theine_reads=0%,writes=100%-8 2194747 542.4 ns/op 1843615 ops/s BenchmarkCache/zipf_ristretto_reads=0%,writes=100%-8 1839237 642.5 ns/op 1556503 ops/s BenchmarkCache/zipf_otter_reads=0%,writes=100%-16 1384345 846.0 ns/op 1181980 ops/s BenchmarkCache/zipf_theine_reads=0%,writes=100%-16 1915946 528.8 ns/op 1891008 ops/s BenchmarkCache/zipf_ristretto_reads=0%,writes=100%-16 1765465 697.3 ns/op 1434089 ops/s BenchmarkCache/zipf_otter_reads=0%,writes=100%-32 1265883 979.8 ns/op 1020607 ops/s BenchmarkCache/zipf_theine_reads=0%,writes=100%-32 1953358 526.1 ns/op 1900935 ops/s BenchmarkCache/zipf_ristretto_reads=0%,writes=100%-32 1618098 696.1 ns/op 1436625 ops/s benchmem 100% write (cpu 32) goos: linux goarch: amd64 pkg: github.com/maypok86/benchmarks/throughput cpu: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz BenchmarkCache/zipf_otter_reads=0%,writes=100%-32 80 B/op 1 allocs/op BenchmarkCache/zipf_theine_reads=0%,writes=100%-32 0 B/op 0 allocs/op BenchmarkCache/zipf_ristretto_reads=0%,writes=100%-32 112 B/op 3 allocs/op 如果你还在用 Ristretto 个人建议换成 Theine 或者 Otter ,Ristretto 和你想的可能不太一样: Ristretto 的写入操作是异步的,不能写入完立刻读取。 Ristretto 的写入有一定随机性,为了提高写速度 Ristretto 使用了 select/default 把数据写入 channel ,导致数据可能丢失。把 default 去掉写入速度会大幅下降。 Ristretto 的 Cost 参数默认情况下不 work ,导致 Ristretto 实际存储的数据量可能远低于你想要的数据量,需要手工把IgnoreInternalCost设为 true ,但这个参数在 Readme 里完全没有提到。 读写高并发下 Ristretto 有比较严重的 contention ,75% Read 下速度大约是 Theine/Otter 的 1/4 ,这还是丢失部分写入的情况下。
  7. 手里有华为 watch gt5 ,里面有个功能是"情绪检测",最近经常检测出愉悦的情绪,但是我感觉并没有。不知道它的检测原理是什么?搜索引擎也查了一下,也没有查到很准确专业的结果。 大家有知道的嘛?
  8. 英语已经在学了,但没啥新鲜感 考虑学中医, 做到能给人做诊断的程度 (中医我推荐 b 站一门课程, 叫 潘毅 中医基础理论) 或者学点政治哲学, 可以写写文章吹吹( 可以看看腾讯里今年新出的一个哲学访谈, 里面有个学生的议题可以深入) 还有其他路子推荐吗
  9. 由于奇葩的原因,转行刚干了 4 个月就被干掉了,被干掉的过程中居然还去派出所走了一趟,也是崭新的体验,有时间再分享一下奇葩过程。 今天聊聊失业者社交的话题,我之前对这个话题不太感兴趣,上次看到朋友要组建失业咖啡馆我也不以为然,不过今天想想,失业者群体内互相社交还是有点用。 比如说,我觉得这一次我可能短时间之内找不到工作,这时候偶尔认识新朋友,大家一起聊聊也挺好。我觉得对于积极调整心态很有用,除了比烂之外,面基也能分享很多情绪、见闻,真是抱团取暖呀。 上一次失业的时候头脑发热,尝试了一把线下约图书馆看书,意外的是很快有朋友响应,可惜后来没有坚持下去。 成年人关心自己的心理健康,讲出来总是有点矫情,更别说失业让人有种失业羞耻感,所以可能避而不谈自己消化的人多,但是我觉得线下的这类活动有益无害,下次我要试试哈哈。
  10. 这个情况已经持续很久了,我怀疑是在打击颜色视频。就和以前某度盘被屏蔽的视频一样,下载后也无法播放。 115 之前活动优惠,买了 10 年的会员,但从屏蔽视频的事情来看,感觉前景很不乐观
  11. google 了一下,老的 macos 有地方可以调整词库,macos 找不到对应的菜单了。 例如下面图片这个,在 macos15 找不到了。 https://cyk-zotero.oss-cn-beijing.aliyuncs.com/img/202301161058778.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1/format/webp 所以在 macos 15 ,怎么修改自带输入法的词库?
  12. 我的 MBP 是 m2max 16 寸的,最近在家一线通连显示器使用,显示器断电 1 小时以上 MBP 就会关机,这个时候打开显示器电源动几下键盘就听到当的一声 MBP 开机了。开机以后系统没有崩溃提示应该是正常关机的,这个问题有解决办法吗?下面是电源配置 Battery Power: Sleep On Power Button 1 powermode 1 standby 0 ttyskeepawake 1 hibernatemode 3 powernap 1 hibernatefile /var/vm/sleepimage displaysleep 2 womp 1 networkoversleep 1 sleep 0 lessbright 0 tcpkeepalive 1 disksleep 10
  13. 最近想用 myus.com 从美国联想官网购买一台平板电脑,结果发现 myus.com 不支持从联想的官网下单,并且有一个很长的不支持的购物网站的列表: https://shopping.myus.com/restricted-stores/ 不仅仅是联想,也包括 google, dell, hp ,samsung ,tindie 这些,为啥这么多网站都不允许用转运公司的地址? 而为啥 walmart ,amazon ,ebay 这些购物网站又可以?
  14. V 友们股市里赚了多少钱?都来分享些经验吧 先说我的一些个人观点: 1 、轻仓,不要加杠杆,我的仓位一般不会超过 30% 2 、分散投资,合理分散投资可以降低风险。 3 、顺势而为,跟随市场趋势,不要逆市操作,不要认为自己比整个市场牛。 4 、短期投资跟政策,追热点,但风险也不小。 5 、长期投资要深入了解你投资的公司和行业。 6 、不投夕阳产业和暴雷行业,比如房地产,这么多头部企业都暴雷了,个人认为明显没有投资价值。 以上只是个人观点,仅供交流,不作为投资参考。股市有风险,投资需谨慎。 节后的大盘波动,应该给新人上一堂有意义的风险普及课:原来割韭菜的刀,割人这么疼。 欢迎各位大佬分享经验,一起赚零花钱。 欢迎加入 V 友大 A 交流群:
  15. 手机用了 6 年,想换个手机了。这手机用来的朋友说说,现在我看了 3400 左右,双 11 大概能到多少
  16. 需求: 1. 存储视频数据,图片数据(主要需求) 2. 存储代码数据(次要) 3. 需要能够直接通过代码访问到视频数据(我会做个简单的 app 播放视频,给家里老人用,完全无广告,主要需求) 4. 需要长时间开着,如果挂了能远程重启,外网可访问 主要疑问是,这些需求,绿联的,Mage20 这些入门级成品能否支持,是否必须要群晖这种才可以。 我想要最快速度实现主要需求,早弄好,家人早用上。 以上,感谢大家
  17. 最近搬家 有 10kg 衣物想寄回老家, 浙江寄到山西,如何邮寄会比较经济实惠?
  18. 传送门:什么是 IPD 流程? IPD 流程管理有哪些步骤和应用场景
  19. 原来 B 端只有 PC 平台,但是消息和一些数据变更处理不及时,准备做一个移动客户端。 主要是做一些消息通知,例如订单变更,问题咨询等,然后提供一些简单的操作。 根据目前的客户调研反馈,安卓和 ios 可能都要上。 请问各位大佬,有没有好用的消息推送方案推荐,如果两端通用最好了。
  20. 性别:女 学历:双非本科 岗位是前端,薪资 14-15.5k 之间。 请问大家杭银的加班严重吗?工作氛围怎么样?外包受歧视吗? 有没有知道的同学说下,谢谢
  21. 无人驾驶出租车 CyberCab ,没有方向盘和踏板,预计 2026 年之前大规模铺开。 --- 对比国内的萝卜快跑不知道怎么样? CyberCab 每英里费用预计为 0.20 至 0.40 美元,低于城市公交成本。 展示了 Robotvan 货运车,可运载 20 人或用于货物运输,也可作小型公交车。 人形机器人 Optimus 进展明显,售价预计在 2 万至 3 万美元。 --- 似乎比宇树的还要贵点? 如题,感觉也没有太多惊喜??
  22. 看了个把星期了还是没有看好满足需求的显示器。 重度干眼症。之前一直用的是 macbook 原生屏,没有外接,现在公司不让用 mac 了,发了个 thankpad t14 ,感觉屏幕稀烂,就开始搞个外界显示器护护眼。想不到一堆参数,根本看不明白,擦。 求大佬们分享下各自的显示器,🙏 这是我的需求: 硬性要求: 4k 27 寸 144 刷新率以上 价格 4k 以下 中性要求: nanoips 面板 支持雷电接口、或者 typec 全功能(主要是想用反向充电 90w 以上 + 视频输出) 软性要求: 防蓝光 好看 最终看好一款是 kuycon 的,但是有两款 镜面屏跟雾面屏。有没有大佬使用过的呀,求分享。 ps:kuycon 有点贵,加上支架 感觉不值这个价,但又找不到其他的显示器了。 另外 之所以 想要 nanoips 是因为,gpt 说 nanoips 对长期编码比较友好。。。 有个疑问: 大部分都只支持 typec 全功能没有雷电接口,这是为啥呢。 听说 typec 反向充电会充坏 windows 或者 mac typec 全功能能够稳定做到 反向充电 跟 144hz 的视频输出么。不是很懂这个东东