Browse Source

上线准备

pull/6/head
hole-thu 5 years ago
parent
commit
8bca6e5b1e
  1. 79
      public/about.html
  2. 76
      public/policy.html
  3. 6
      public/static/manifest.json
  4. 2
      src/Flows.js
  5. 2
      src/UserAction.js
  6. 2
      src/text_splitter.js

79
public/about.html

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html lang="zh_cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta >
<title>关于新T树洞</title>
<style>
body {
background: #fafafa;
font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #333;
margin: 0;
}
h2 {
text-align: center;
}
div.content {
margin-left: 20px;
margin-right: 20px;
}
div.line {
background-color: purple;
height: 2px;
width: 100%;
}
</style>
</head>
<body>
<div class="content">
<span><a href="/"> 返回新T树洞</a></span>
<h2 id="-t-">新T树洞与树洞族计划</h2>
<p style="text-align:right"><i>——我想要的不仅是一个树洞,而是一片森林</i></p>
<div class="line"></div>
<p>
重新搭建了一个新T树洞,一方面是因为对现有的树洞在<b>功能和安全性</b>上有一些不满而且一直看不到改进,另一方面是觉得总的来说树洞的存在仍然是好的,担心某一天树洞没了,希望设计一套“不死”的存在。
</p>
<br/>
<p>
新T树洞首先在安全性和匿名性上有显著加强。
</p>
<p>
第一,采用第三方认证而非邮箱验证进行注册,从根源上避免新T树洞接触到敏感信息(如果你像某人一样担心树洞和认证提供方勾结,则安全性退化为了直接使用邮箱)。目前实际使用是闭社,因为闭社提供了授权接口,而且支持匿名注册应用(<a href="https://docs.joinmastodon.org/client/token/#creating-our-application" taget="_blank">参考文档</a>)。
候选方案还包括:T大树洞、未名BBS、清华统一身份认证。前两者的主要问题是没有授权接口,未来可能考虑使用一些特殊的方法,例如发布一段指定的随机内容到指定位置,以证明自己拥有这个帐号。清华统一身份认证的问题是似乎并不开放,没法申请,更不太可能匿名申请。
</p>
<p>
第二,也是更核心的,采用随机盐哈希+不定期重置机制。不同于T大树洞使用一个“只有管理员知道”的盐对大家的邮箱进行哈希,新T树洞将在每次启动时随机生成一个盐,只存在于内存中。这意味着,即使是管理员也不可能通过正常手段获取该盐(会通过后端接口公示前三位和后三位,见系统日志栏)。用户所有有痕迹的操作,包括发布树洞、评论、关注、举报等,都只会记录这个随机哈希,而不会绑定到用户上。同时,每次重启就会重置这个随机盐,之前的洞将彻底和发布者失去联系(也许有军用手段可以对内存恢复历史信息?至少我没听说过)。当然,代价是如果你回复很早以前自己发布的洞,树洞也不知道你是洞主了,且每次重置后关注列表也会清空。(换言之,除了账号本身,你的一切都清零了)。
</p>
<br/>
<p>
功能上,新T树洞将秉持<b>自由、平等、透明</b>的原则,尽量给用户自主性,减少管理员不必要的介入。
</p>
<p>
新T树洞将允许用户自己决定是否折叠、自己写折叠警告。用户也可以自己打任意想打的tag,不需要找管理员求tag。为了加强私密性,搜索时仅允许根据tag搜索,而非全文搜索(在关注列表中搜索除外),点击tag即可搜索所有相同tag。在设置中,可以设定展开特定的折叠警告,还可以选择直接忽略(而非折叠)所有带折叠警告的洞——这就相当于提供了两个新T树洞,想看纯净版的看纯净版,想看完整版的看完整版。同时,用户还可以删除自己的发布的回复和没有回复的洞。
</p>
<p>
新T树洞不会有举报过多自动删除、口球X天、敏感词这些东西,取而代之的是所有举报、管理员删除记录、封禁记录都会在系统日志栏向所有人公示。
</p>
<br/>
<p>
这些是新T树洞的设计,但更要的是我的<b>分布式T大树洞族计划</b>。新T树洞发布后,我希望尽快再会出现新新T树洞,新新新T树洞……。这并不是说希望越来越多的树洞因为割裂裂市场反而影响同学们的使用体验,而是希望联合起来互通数据。技术细节上,我会借鉴闭社的实现,通过activitypub协议。最终效果,登陆新新T树洞也能看到新T树洞的洞,也可以回复(可能显示为 Alice<sup>@newnew.com</sup>)。
前面提到的随机盐哈希方案可以避免这种数据交换泄露任何发言者的实际信息。
</p>
<p>
一方面,使用者可以依照自己的偏好选择从任意一个树洞登陆,看到的内容都是一样的(除了管理尺度的不同导致被删的洞可能有所不同)。另一方面,当T大树洞族中有了足够多的树洞,它将变成不死的存在——即使新T树洞被橄榄了,整个T大树洞族仍然存在,大家仍然可以通过新新T树洞等其他树洞进入这个分布式互联的网络,新T树洞上之前发过的内容因为在其他树洞上有缓存也不会丢失。
</p>
<p>
这一部分目前还未实现,毕竟也还没有其他树洞可连。如果你愿意自己维护一个新新T树洞,一起打造清华树洞族,请邮件联系我!有新的树洞加入后,我们可以开始协商协议与实现细节。
</p>
<br/>
<p>
树洞内搜索 <a href="/#新手导引">#新手导引</a> 查看具体的使用帮助。使用中遇到任何问题请带上tag #产品反馈 提出,或联系邮箱/到github反馈。
</p>
</div>
</body>
</html>

76
public/policy.html

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&quot;T树洞&quot;管理规范(试行)</title>
<title>&quot;T树洞&quot;管理规范(试行)</title>
<style>
body {
background: #fafafa;
@ -30,68 +30,38 @@
</head>
<body>
<div class="content">
<h2 id="-t-">&quot;T树洞&quot;管理规范(试行)</h2>
<h2 id="-t-">&quot;T树洞&quot;管理规范(试行)</h2>
<div class="line"></div>
<p>一、
为规范“T树洞”管理,维护社区秩序,保障使用者的合法权益;根据《最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定》《侵权责任法》第36条“关于网络侵权的规定”《中华人民共和国计算机信息网络国际联网管理规定》《中华人民共和国网络安全法》及《互联网信息服务管理办法》《互联网电子公告服务管理规定》《互联网论坛社区服务管理规定》《互联网跟帖评论服务管理规定》的规定,并结合普通高等学校相关管理规定,制定本规范,简称《规范》或《树洞条例》。</p>
<p>二、 本规范适用于“T树洞”全体用户。</p>
<p>三、 T树洞团队成立发展运营组,承担树洞管理具体职责,依据本规范对树洞进行管理。</p>
<p>四、 本规范所指&quot;内容&quot;包括 T树洞用户在使用树洞的过程中上传、发布、传播的任何内容,包括但不限于文字、图片、网页链接等发送、回复的内容。用户发表任何内容时,即确认:<br>
为规范“T树洞”管理,维护社区秩序,保障使用者的合法权益;根据《最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定》《侵权责任法》第36条“关于网络侵权的规定”《中华人民共和国计算机信息网络国际联网管理规定》《中华人民共和国网络安全法》及《互联网信息服务管理办法》《互联网电子公告服务管理规定》《互联网论坛社区服务管理规定》《互联网跟帖评论服务管理规定》的规定,并结合普通高等学校相关管理规定,制定本规范,简称《规范》或《树洞条例》。</p>
<p>二、 本规范适用于“T树洞”全体用户。</p>
<p>三、 T树洞团队依据本规范对树洞进行管理。</p>
<p>四、 本规范所指&quot;内容&quot;包括 T树洞用户在使用树洞的过程中上传、发布、传播的任何内容,包括但不限于文字、图片、网页链接等发送、回复的内容。用户发表任何内容时,即确认:<br>
1. 该内容为用户所原创或享有相关版权,并为所发表的内容承担相关法律责任。<br>
2. 用户向T树洞团队永久许可其在T树洞的发展、运营和维护期间储存及合理使用用户发布的内容。<br>
2. 用户向T树洞团队永久许可其在T树洞的发展、运营和维护期间储存用户发布的内容。<br>
3. 用户已阅读并承诺遵守本规范及未来修订的所有版本中的所有内容。<br>
</p>
<p>五、 T树洞账号仅供本人使用。使用T树洞提供的任何网络服务即同意:<br>
1. 用户不得以任何形式出借、出租、转让T树洞账号;违者封禁账号T大树洞使用权限1个月。在此过程中发布违规信息造成不良影响经查实的,根据性质情节予以封禁账号T大树洞使用权限2个月以上至永久封禁<br>
2. 任何人未经T树洞团队许可,不得擅自将T树洞内容向校外人员或T树洞用户以外的用户传播。违者造成恶劣影响的,T大树洞团队有权调查、封禁传播人账户,并追究法律责任<br>
<p>五、 T树洞账号仅供本人使用。使用T树洞提供的任何网络服务即同意:<br>
1. 用户不得以任何形式出借、出租、转让T树洞账号。<br>
2. 任何人未经T树洞团队许可,不得擅自将T树洞内容向校外人员或T树洞用户以外的用户传播。<br>
3.
不得使用T大树洞网页版和THUInfo(https://github.com/THUInfo/THUInfo)以外的客户端、脚本等访问方式,未经T大树洞团队明确许可,访问T大树洞的相关服务、下载T大树洞服务提供的相关内容;违者造成恶劣影响的,T大树洞团队有权调查、封禁传播人账户,并追究法律责任。<br>
在不影响新T树洞正常运行、不导致内容泄漏的前提下,用户可以使用自己喜欢的任意方式访问新T树洞,
包括但不限于网页版、脚本、自制客户端、桥接等。<br>
</p>
<p>
六、 用户不得利用T大树洞上传、发布、传播如下法律、法规或政策规定禁止的内容(否则,自行承担所造成的法律后果):<br>
1. 违反宪法所确定的基本原则,违反相关法律法规与政策规定,违反《普通高等学校学生管理规定》的;<br>
2. 危害国家安全、荣誉和利益,泄露国家秘密,颠覆国家政权,破坏国家统一的;<br>
3. 煽动民族矛盾、破坏民族团结,鼓动地域歧视的;<br>
4. 公开传教、破坏国家宗教政策,宣扬邪教和封建迷信的;<br>
5. 散布谣言,误导他人,扰乱社会和校园秩序的;<br>
6. 含有任何淫秽色情、性暗示、赌博、传销、暴力、凶杀、恐怖或者教唆犯罪的;<br>
7. 煽动非法游行集会,召集非法组织的;<br>
8. 出租、出售学校提供的具有校园公益性质资源的,如免费演出入场券、校园卡、学生证、寝室床位等;<br>
9. 与法律法规底线、社会主义制度底线、国家利益底线、公民合法权益底线、社会公共秩序底线、道德风尚底线和信息真实性底线相抵触的;<br>
10. 其他不宜公开讨论的政治内容和含有法律、行政法规禁止的其他内容的信息。<br>
六、 用户不得利用新T树洞上传、发布、传播违反法律、法规或政策规定禁止的内容。
</p>
<p>七、 用户不得利用T大树洞上传、发布、传播如下干扰T大树洞正常运营,或者侵害其他用户或第三方合法权益,或者经举报、申诉并核实准确的内容:<br>
1. 引起其他用户不适并受到多次举报的;<br>
2. 侵害他人肖像权、知识产权、商业秘密等合法权益的;<br>
3. 侵害他人隐私,未经允许披露他人信息的;<br>
4. 含有侮辱诽谤、人身攻击、虚假信息等内容,对他人或机构造成不良影响的;<br>
5. 含有骚扰、垃圾广告、恶意信息、诱骗信息的;<br>
6. 含有引起歧义的缩写、谐音或其他表达,诱导违规话题的;<br>
7. 其他干扰T大树洞正常运营,以及侵害其他用户或第三方合法权益的内容。<br>
<p>七、 用户不得利用新T树洞上传、发布、传播如下干扰新T树洞正常运营与用户正常使用,或者侵害其他用户/第三方合法权益的内容。
</p>
<p>八、 用户在使用过程中如发现违反本规范中所述各项管理规范的行为,可通过T大树洞内的举报按钮或通过邮箱 ([email protected]) 联系发展运营组进行举报。</p>
<p>八、 用户在使用过程中如发现违反本规范中所述各项管理规范的行为,可通过新T树洞内的举报按钮或通过邮箱联系团队进行举报。</p>
<p>九、 用户发布的主题帖或回复帖,经判定为违规所述管理规范的,予以删除。</p>
<p>十、 被删帖用户将遭到“历史删帖总数(天)”的禁言处罚。 被删贴用户的 T大树洞 树洞相关操作权限有权被团队进行限制。其他 T大树洞 功能不受此限影响。T大树洞团队有权对具体情况进行裁定与调整。<br>
1. 屡次违反树洞规范、超出一定累计封禁次数的用户,树洞管理运营组有权永久封禁该用户;<br>
2. 严重违反树洞规范,大量发布违规信息的用户将被封禁1个月以上直至永久封禁。<br>
</p>
<p>十一、 用户账户受到处理后,将自动收到系统发来的违规情况说明。用户被封禁后在封禁期满前有权向T大树洞团队通过邮箱方式 ([email protected]) 书面提出申诉。</p>
<p>十二、 包括用户在注册和使用中产生的身份信息,发展运营组未经用户允许,不主动查询、使用、透露、公开用户个人信息,如用户的访问IP等,但以下特定情形除外:<br>
1. 用户转让、出租、出售个人账户或者个人账户导致的个人信息泄露;<br>
2. 为维护社会公共利益、校园安全稳定以及个人人身安全;<br>
3. 根据相关法律法规或政策的要求。<br>
</p>
<p>十三、 T大树洞发展运营组未经用户允许,不主动查询、使用、透露、公开用户邮箱哈希值,但以下特定情形除外:<br>
1. 本规范第十二条所规定的各类情形<br>
2. 依照本规范,需要被封禁的用户<br>
</p>
<p>十四、 T大树洞发展运营组未经用户允许,不主动尝试解密用户邮箱哈希值获取用户邮箱明文,但以下特定情形除外:<br>
1. 本规范第十二条所规定的各类情形<br>
</p>
<p>十五、 本规范不构成对相关法律法规及相关高校管理制度的任何有效修改,如有冲突,应以相关法律法规与制度文件为准。</p>
<p>十六、 T大树洞 团队有权对行为异常的用户账号加以技术性限制。</p>
<p>十七、 本规范由T大树洞开发团队发展运营组负责解释。</p>
<p>十八、 本规定自2020年7月12日起施行。</p>
<p>十、 严重违反树洞规范,破坏树洞运营的用户将予以封禁,封禁到下一次重置自动失效。</p>
<p>十一、新T树洞管理方承诺使用与开源代码一致的后台代码,且不会向第三方出售或提供用户信息。</p>
<p>十二、在重置前,用户可自行删除回复帖及没有回复的主题帖。该删除是彻底、不可逆的。</p>
<p>十三、 本规范不构成对相关法律法规及相关高校管理制度的任何有效修改,如有冲突,应以相关法律法规与制度文件为准。</p>
<p>十四、 新T树洞团队有权对行为异常的用户账号加以技术性限制。</p>
<p>十五、 本规范由新T树洞开发团队负责解释。</p>
<p>十六、 本规定自2020年9月7日起施行。</p>
</div>
</body>
</html>
</html>

6
public/static/manifest.json

@ -1,14 +1,14 @@
{
"short_name": "树洞",
"name": "T树洞",
"name": "T树洞",
"icons": [
{
"src": "favicon/512.png",
"src": "https://s1.ax1x.com/2020/09/07/wnnsOO.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "favicon/192.png",
"src": "https://s1.ax1x.com/2020/09/07/wnrovV.png",
"sizes": "192x192",
"type": "image/png"
}

2
src/Flows.js

@ -26,8 +26,10 @@ import { API } from './flows_api';
import { cache } from './cache';
/*
const IMAGE_BASE = 'https://thimg.yecdn.com/';
const IMAGE_BAK_BASE = 'https://img2.thuhole.com/';
*/
const CLICKABLE_TAGS = { a: true, audio: true };
const PREVIEW_REPLY_COUNT = 10;

2
src/UserAction.js

@ -40,7 +40,7 @@ export function InfoSidebar(props) {
<LoginForm show_sidebar={props.show_sidebar} />
<div className="box list-menu">
<a href="/about.html" target="_blank">
<span className="icon icon-textfile" />
<span className="icon icon-about" />
<label>关于</label>
</a>
&nbsp;&nbsp;

2
src/text_splitter.js

@ -3,7 +3,7 @@
export const PID_RE = /(^|[^\d\u20e3\ufe0e\ufe0f])(#\d{1,7})(?![\d\u20e3\ufe0e\ufe0f])/g;
// TODO: fix this re
// export const URL_PID_RE=/((?:https?:\/\/)?thuhole\.com\/?#(?:#|%23)([2-9]\d{4,5}|1\d{4,6}))(?!\d|\u20e3|\ufe0e|\ufe0f)/g;
export const URL_PID_RE = /((?:https?:\/\/)?thuhole\.com\/?#(?:#|%23)(\d{1,7}))(?!\d|\u20e3|\ufe0e|\ufe0f)/g;
export const URL_PID_RE = /((?:https?:\/\/)?hole\.thu\.monster\/?#(?:#|%23)(\d{1,7}))(?!\d|\u20e3|\ufe0e|\ufe0f)/g;
export const NICKNAME_RE = /(^|[^A-Za-z])((?:(?:Angry|Baby|Crazy|Diligent|Excited|Fat|Greedy|Hungry|Interesting|Jolly|Kind|Little|Magic|Naïve|Old|PKU|Quiet|Rich|Superman|Tough|Undefined|Valuable|Wifeless|Xiangbuchulai|Young|Zombie)\s)?(?:Alice|Bob|Carol|Dave|Eve|Francis|Grace|Hans|Isabella|Jason|Kate|Louis|Margaret|Nathan|Olivia|Paul|Queen|Richard|Susan|Thomas|Uma|Vivian|Winnie|Xander|Yasmine|Zach)|You Win(?: \d+)?|洞主)(?![A-Za-z])/gi;
export const URL_RE = /(^|[^.@a-zA-Z0-9_])((?:https?:\/\/)?(?:(?:[\w-]+\.)+[a-zA-Z]{2,3}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d{1,5})?(?:\/[\w~!@#$%^&*()\-_=+[\]{};:,./?|]*)?)(?![a-zA-Z0-9])/gi;

Loading…
Cancel
Save