【RFC-062】 在文章和问题页面加入一键Archive按钮
变更内容:页面加个按钮指向 https://web.archive.org/save/本页地址
变更理由:用众人的力量帮品葱留得全尸,谁也不知道明天会发生什么,万一新品葱64前被爆破呢?
讨论时间:一周
变更步骤:第一步加入按钮,第二步从archive.org读取本页的快照数量显示在本页(免得重复archive)
变更理由:用众人的力量帮品葱留得全尸,谁也不知道明天会发生什么,万一新品葱64前被爆破呢?
讨论时间:一周
变更步骤:第一步加入按钮,第二步从archive.org读取本页的快照数量显示在本页(免得重复archive)
18 个评论
这个一键archive的链接要在新窗口打开
有SQL备份所以其实没必要
archive里可以像浏览网站一样浏览,比较方便。另外单个SQL数据库备份仍然有一定单点故障的风险。如果是因为管理员被威胁而关闭,要靠其他人去恢复品葱肯定需要一定时间的。
有archive的话是一个多重备份,也方便浏览,更是一个培养网民顺手archive好习惯的方式。
你看最近挂掉的好几个网站:茉莉花革命,中国数字时代,都没有做好archive,导致很多文章没法浏览,如果一个网站每篇文章都被archive的话,中共端掉那个网站的动力也要小很多。
你看最近挂掉的好几个网站:茉莉花革命,中国数字时代,都没有做好archive,导致很多文章没法浏览,如果一个网站每篇文章都被archive的话,中共端掉那个网站的动力也要小很多。
是的,就是因为只要一行代码,毫无任何服务器开销,又能降低被端的价值,培养网络反贼的习惯。所以值得弄。很多网站,不管知识水平什么层次,它们的安全性都堪忧,很多连https都没用。网民也是一样。品葱在安全性上的举措不仅为了品葱自己,也是在树立一个异议网站的典范,引同行效仿。
原本想用本站的url语法发个一键存档的bookmarklet, 貌似本站的url语法不支持bookmarklet?
不需要网站后台进行变更。
// ==UserScript==
// @name PincongArchive
// @namespace PincongArchive
// @match https://pincong.rocks/article/*
// @version 1
// @grant none
// @run-at document-end
// ==/UserScript==
(function(){
let doc=document;
let newtag=function(t){return doc.createElement(t);}
let newtext=function(s){return doc.createTextNode(s);}
let selid=function(i){return doc.getElementById(i);}
let selcss1=function(c,r){return (r?r:doc).querySelector(c);}
let appendnode=function(r,n){n?r.appendChild(n):null;}
let archive='https://web.archive.org/';
let checkavl=function(url){
let req=new Request(archive+'wayback/available?url='+url,
{'method':'GET','redirect':'error'});
fetch(req).then(function(resp){
return resp.json();
}).then(function(data){
let con=selid('PincongArchive-counter');
let a=selid('PincongArchive-link');
let c=data['archived_snapshots']['closest'];
if(c){
a.href=c['url'];
con.textContent='archived at '+c['timestamp'];
}else{
a.href=archive+'save/'+url;
con.textContent='not archived';
}
})
}
let createui=function(){
let parent=selcss1('nav>ul.nav');
if(!parent)return;
let url=location.href;
let root=newtag('li');
let a=newtag('a');
let con=newtag('span');
appendnode(parent,root);
appendnode(root,a);
appendnode(a,newtext('PincongArchive'));
appendnode(a,con);
appendnode(con,newtext('checking...'));
a.id='PincongArchive-link';
con.id='PincongArchive-counter';
}
createui();
})()
先整清楚自己到底想要什么。如果以“留得全尸”为目的,github上已经有数据备份了,没必要一页页备份。信不过github,可以定期把git bundle传到archive.org。https://pypi.org/project/internetarchive/。
有心人自己拿bookmarklet保存关心的页面就够了。
有心人自己拿bookmarklet保存关心的页面就够了。
端点星小项目
https://terminus2049/index.html/
ArchiveTeleBot
用于快速保存网页:
Archive2049Bot:自动保存网址到 https://archive.is/ 的 Telegram 机器人。
GitHub:https://github.com/Terminus2049/ArchiveTeleBot
https://terminus2049/index.html/
ArchiveTeleBot
用于快速保存网页:
Archive2049Bot:自动保存网址到 https://archive.is/ 的 Telegram 机器人。
GitHub:https://github.com/Terminus2049/ArchiveTeleBot