index.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>What can a zite find out?</title>
  6. <meta name="description" content="This page provides a small overview of what a zite can find out about you. You can also test some zeroframe functions.">
  7. <base href="" target="_top" id="base">
  8. <script>base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, "")</script>
  9. <style>
  10. li::before {
  11. font-style: italic;
  12. }
  13. #auth_address::before {
  14. content: "Current user's bitcoin address: ";
  15. }
  16. #cert_user_id::before {
  17. content: "Currently selected certificate for the site: ";
  18. }
  19. #settings_serving::before {
  20. content: "Site enabled?: ";
  21. }
  22. #settings_permissions::before {
  23. content: "Site's permission: ";
  24. }
  25. #settings_cache_time_modified_files_check::before {
  26. content: "Last time the page was checked for updates: ";
  27. }
  28. #settings_size::before {
  29. content: "Site total size: ";
  30. }
  31. #settings_size::after {
  32. content: "KB";
  33. }
  34. #settings_ajax_key::before {
  35. content: "Ajax key: ";
  36. }
  37. #settings_peers::before {
  38. content: "Saved peers num for sorting: ";
  39. }
  40. #bad_files::before {
  41. content: "Files that needs to be download: ";
  42. }
  43. #size_limit::before {
  44. content: "Current site size limit: ";
  45. }
  46. #size_limit::after {
  47. content: "MB";
  48. }
  49. #next_size_limit::before {
  50. content: "Size limit required by sum of site's files: ";
  51. }
  52. #peers::before {
  53. content: "Peers of site: ";
  54. }
  55. #started_task_num::before {
  56. content: "Last number of files downloaded: ";
  57. }
  58. #tasks::before {
  59. content: "Number of files currently under download: ";
  60. }
  61. #workers::before {
  62. content: "Current concurent downloads: ";
  63. }
  64. #peermessage::before {
  65. content: "Peermessage installed?: ";
  66. }
  67. #cookieEnabled::before {
  68. content: "Cookies enabled?: ";
  69. }
  70. #appName::before {
  71. content: "Browser's application name: ";
  72. }
  73. #appCodeName::before {
  74. content: "Browser's application code name: ";
  75. }
  76. #product::before {
  77. content: "Browser engine's product name: ";
  78. }
  79. #appVersion::before {
  80. content: "Browser's version information: ";
  81. }
  82. #userAgent::before {
  83. content: "user-agent header sent: ";
  84. }
  85. #platform::before {
  86. content: "Browser's platform (operating system): ";
  87. }
  88. #language::before {
  89. content: "Browser's language: ";
  90. }
  91. #onLine::before {
  92. content: "Is browser online?: ";
  93. }
  94. #debug_mode::before {
  95. content: "Debug mode?: ";
  96. }
  97. #fileserver_ip::before {
  98. content: "Fileserver ip: ";
  99. }
  100. #fileserver_port::before {
  101. content: "Fileserver port: ";
  102. }
  103. #ip_external::before {
  104. content: "IP external?: ";
  105. }
  106. #language2::before {
  107. content: "Language: ";
  108. }
  109. #offline::before {
  110. content: "Offline?: ";
  111. }
  112. #platform2::before {
  113. content: "Zeronet's platform (operating system): ";
  114. }
  115. #plugins::before {
  116. content: "Plugins: ";
  117. }
  118. #plugins_rev::before {
  119. content: "Plugins revision: ";
  120. }
  121. #port_openedv4::before {
  122. content: "Port opened IPv4: ";
  123. }
  124. #port_openedv6::before {
  125. content: "Port opened IPv6: ";
  126. }
  127. #rev::before {
  128. content: "Zeronet revision: ";
  129. }
  130. #timecorrection::before {
  131. content: "Time correction: ";
  132. }
  133. #timecorrection::after {
  134. content: "s";
  135. }
  136. #tor_enabled::before {
  137. content: "Tor enabled?: ";
  138. }
  139. #tor_has_meek_bridges::before {
  140. content: "Tor has meek bridges?: ";
  141. }
  142. #tor_status::before {
  143. content: "Tor status: ";
  144. }
  145. #tor_use_bridges::before {
  146. content: "Tor use bridges?: ";
  147. }
  148. #ui::before {
  149. content: "Zeronet UI: ";
  150. }
  151. #user_settings_theme::before {
  152. content: "Theme: ";
  153. }
  154. #user_settings_use_system_theme::before {
  155. content: "Use system theme?: ";
  156. }
  157. #version::before {
  158. content: "Version: ";
  159. }
  160. </style>
  161. </head>
  162. <body>
  163. <div>
  164. <h1>What can a Zite find out?</h1>
  165. <ul>
  166. <li><b>Zeroframe</b>
  167. <ul>
  168. <li><b>General</b>
  169. <ul>
  170. <li id="auth_address"></li>
  171. <li><span id="cert_user_id"></span> <button onclick="login()">Select certificate</button></li>
  172. <li id="settings_serving"></li>
  173. <li id="settings_permissions"></li>
  174. <li id="settings_ajax_key"></li>
  175. <li id="peers"></li>
  176. <li id="peermessage">No</li>
  177. </ul>
  178. </li>
  179. <li><b>Server info / Zeronet</b>
  180. <ul>
  181. <li id="debug_mode"></li>
  182. <li id="fileserver_ip"></li>
  183. <li id="fileserver_port"></li>
  184. <li id="ip_external"></li>
  185. <li id="language2"></li>
  186. <li id="offline"></li>
  187. <li id="platform2"></li>
  188. <li id="plugins">
  189. <ul id="plugins_list"></ul>
  190. </li>
  191. <li id="plugins_rev">
  192. <ul id="plugins_rev_cnt"></ul>
  193. </li>
  194. <li id="port_openedv4"></li>
  195. <li id="port_openedv6"></li>
  196. <li id="rev"></li>
  197. <li id="timecorrection"></li>
  198. <li id="tor_enabled"></li>
  199. <li id="tor_has_meek_bridges"></li>
  200. <li id="tor_status"></li>
  201. <li id="tor_use_bridges"></li>
  202. <li id="ui"><span id="ui_ip"></span>:<span id="ui_port"></span></li>
  203. <li id="user_settings_theme"></li>
  204. <li id="user_settings_use_system_theme"></li>
  205. <li id="version"></li>
  206. </ul>
  207. </li>
  208. <li><b>This site</b>
  209. <ul>
  210. <li id="settings_cache_time_modified_files_check"></li>
  211. <li id="settings_size"></li>
  212. <li id="settings_peers"></li>
  213. <li id="tasks"></li>
  214. <li id="workers"></li>
  215. <li id="started_task_num"></li>
  216. <li id="size_limit"></li>
  217. <li id="next_size_limit"></li>
  218. <li id="bad_files"></li>
  219. </ul>
  220. </li>
  221. </ul>
  222. </li>
  223. <li><b>Navigator</b>
  224. <ul>
  225. <li id="cookieEnabled"></li>
  226. <li id="appName"></li>
  227. <li id="appCodeName"></li>
  228. <li id="product"></li>
  229. <li id="appVersion"></li>
  230. <li id="userAgent"></li>
  231. <li id="platform"></li>
  232. <li id="language"></li>
  233. <li id="onLine"></li>
  234. </ul>
  235. </li>
  236. </ul>
  237. <br>
  238. <ul>
  239. <li><b>Notification tests:</b>
  240. <button onclick="testNotification('info')">Info</button>
  241. <button onclick="testNotification('error')">Error</button>
  242. <button onclick="testNotification('done')">Done</button>
  243. </li>
  244. <li><b>Confirmation tests:</b>
  245. <button onclick="testConfirmation()">Test</button>
  246. </li>
  247. <li><b>Prompt tests:</b>
  248. <button onclick="testPrompt('text')">Text</button>
  249. <button onclick="testPrompt('password')">Password</button>
  250. </li>
  251. </ul>
  252. <br>
  253. <button onclick="loadAllInformation()">Reload all</button>
  254. (Can help if not all information is loaded)<br>
  255. <button onclick="testConnection()">Test connection to UiServer</button>
  256. <button onclick="getNavigatorInfo()">Reload Navigator information</button>
  257. <button onclick="getSiteInfo()">Reload site information</button><br>
  258. <button onclick="getPeermessageInfo()">Reload PeerMessage Plugin information</button>
  259. <button onclick="getServerInfo()">Reload server information</button>
  260. <br><br>
  261. <button onclick="toClearnetTest()">Check connection to clearnet</button>
  262. <br><br>
  263. For a documentation of the functions see <a href="/1DocsYf2tZVVMEMJFHiDsppmFicZCWkVv1/site_development/zeroframe_api_reference/" target="_blank">ZeroFrame API Reference</a>.
  264. </div>
  265. <script src="js/ZeroFrame.js"></script>
  266. <script>
  267. var zeroFrame = new ZeroFrame();
  268. function toClearnetTest() {
  269. zeroFrame.cmd('wrapperConfirm', ["The test will try to connect to the clearnet. Is this ok?", "Yes"], (confirmed) => {
  270. if (confirmed) {
  271. window.location = "clearnet.html";
  272. zeroFrame.cmd("wrapperNotification",
  273. ["done", "You will be redirected to the Clearnet test..."]);
  274. }
  275. });
  276. }
  277. function testConfirmation() {
  278. zeroFrame.cmd('wrapperConfirm', ["Confirm?", "Yes"], (confirmed) => {
  279. zeroFrame.cmd("wrapperNotification",
  280. ["done", (confirmed ? "C" : "Not c") + "onfirmed", 4500]);
  281. });
  282. }
  283. function testNotification(type) {
  284. zeroFrame.cmd("wrapperNotification",
  285. [type, "Test notification for 3s", 3000]);
  286. }
  287. function testPrompt(type) {
  288. zeroFrame.cmd("wrapperPrompt", ["Enter anything:", type], function(text) {
  289. zeroFrame.cmd("wrapperNotification",
  290. ["info", 'You entered "' + text + '".', 5000]);
  291. });
  292. }
  293. function getNavigatorInfo() {
  294. document.getElementById("cookieEnabled").innerHTML = navigator.cookieEnabled;
  295. document.getElementById("appName").innerHTML = navigator.appName;
  296. document.getElementById("appCodeName").innerHTML = navigator.appCodeName;
  297. document.getElementById("product").innerHTML = navigator.product;
  298. document.getElementById("appVersion").innerHTML = navigator.appVersion;
  299. document.getElementById("userAgent").innerHTML = navigator.userAgent;
  300. document.getElementById("platform").innerHTML = navigator.platform;
  301. document.getElementById("language").innerHTML = navigator.language;
  302. document.getElementById("onLine").innerHTML = navigator.onLine;
  303. }
  304. function checkDownloadStatus() {
  305. zeroFrame.cmd("siteInfo", [], (res) => {
  306. if (res.tasks !== 0) {
  307. zeroFrame.cmd("wrapperNotification",
  308. ["info", "Zite is still downloading. This could affect the functionality.", 4000]);
  309. }
  310. });
  311. }
  312. function testConnection() {
  313. zeroFrame.cmd("ping", [], (pong) => {
  314. if (pong === "pong") {
  315. zeroFrame.cmd("wrapperNotification",
  316. ["done", "Connection to UiServer websocket successful.", 4000]);
  317. } else {
  318. zeroFrame.cmd("wrapperNotification",
  319. ["error", "Connection to UiServer websocket failed."]);
  320. }
  321. });
  322. }
  323. function getSiteInfo() {
  324. zeroFrame.cmd("siteInfo", [], function(si) {
  325. document.getElementById("auth_address").innerHTML = si.auth_address;
  326. document.getElementById("cert_user_id").innerHTML = si.cert_user_id;
  327. document.getElementById("settings_serving").innerHTML = si.settings.serving;
  328. document.getElementById("settings_permissions").innerHTML = si.settings.permissions;
  329. document.getElementById("settings_cache_time_modified_files_check").innerHTML = si.settings.cache.time_modified_files_check;
  330. document.getElementById("settings_size").innerHTML = si.settings.size / 1024.0;
  331. document.getElementById("settings_ajax_key").innerHTML = si.settings.ajax_key;
  332. document.getElementById("settings_peers").innerHTML = si.settings.peers;
  333. document.getElementById("bad_files").innerHTML = si.bad_files;
  334. document.getElementById("size_limit").innerHTML = si.size_limit;
  335. document.getElementById("next_size_limit").innerHTML = si.next_size_limit;
  336. document.getElementById("peers").innerHTML = si.peers;
  337. document.getElementById("started_task_num").innerHTML = si.started_task_num;
  338. document.getElementById("tasks").innerHTML = si.tasks;
  339. document.getElementById("workers").innerHTML = si.workers;
  340. });
  341. }
  342. function getPeermessageInfo() {
  343. zeroFrame.cmd("peerBroadcast", ["test", false], (res) => {
  344. var out = document.getElementById("peermessage");
  345. out.innerHTML = (res.sent ? "Yes" : "No - " + res.error);
  346. console.log(res);
  347. });
  348. }
  349. function getServerInfo() {
  350. zeroFrame.cmd("serverInfo", [], function(si) {
  351. document.getElementById("debug_mode").innerHTML = si.debug;
  352. document.getElementById("fileserver_ip").innerHTML = si.fileserver_ip;
  353. document.getElementById("fileserver_port").innerHTML = si.fileserver_port;
  354. document.getElementById("ip_external").innerHTML = si.ip_external;
  355. document.getElementById("language2").innerHTML = si.language;
  356. document.getElementById("offline").innerHTML = si.offline;
  357. document.getElementById("platform2").innerHTML = si.platform;
  358. var lplugins = document.getElementById("plugins_list");
  359. console.log("inhalt", document.getElementById("plugins_list"));
  360. lplugins.innerHTML = "";
  361. si.plugins.forEach(function (key) {
  362. lplugins.innerHTML += "<li>" + key + "</li>\n";
  363. });
  364. var plugrev = document.getElementById("plugins_rev_cnt");
  365. plugrev.innerHTML = "";
  366. Object.keys(si.plugins_rev).forEach(function (key) {
  367. plugrev.innerHTML += "<li>" + key + ": " + si.plugins_rev[key] + "</li>\n";
  368. });
  369. document.getElementById("port_openedv4").innerHTML = si.port_opened.ipv4;
  370. document.getElementById("port_openedv6").innerHTML = si.port_opened.ipv6;
  371. document.getElementById("rev").innerHTML = si.rev;
  372. document.getElementById("timecorrection").innerHTML = si.timecorrection;
  373. document.getElementById("tor_enabled").innerHTML = si.tor_enabled;
  374. document.getElementById("tor_has_meek_bridges").innerHTML = si.tor_has_meek_bridges;
  375. document.getElementById("tor_status").innerHTML = si.tor_status;
  376. document.getElementById("tor_use_bridges").innerHTML = si.tor_use_bridges;
  377. document.getElementById("ui_ip").innerHTML = si.ui_ip;
  378. document.getElementById("ui_port").innerHTML = si.ui_port;
  379. document.getElementById("user_settings_theme").innerHTML = si.user_settings.theme;
  380. document.getElementById("user_settings_use_system_theme").innerHTML = si.user_settings.use_system_theme;
  381. document.getElementById("version").innerHTML = si.version;
  382. });
  383. }
  384. function loadAllInformation() {
  385. testConnection();
  386. checkDownloadStatus();
  387. getSiteInfo();
  388. getServerInfo();
  389. getPeermessageInfo();
  390. getNavigatorInfo();
  391. }
  392. loadAllInformation();
  393. function login() {
  394. zeroFrame.cmd("certSelect", [[], true], () => {
  395. getSiteInfo();
  396. });
  397. }
  398. </script>
  399. </body>
  400. </html>