pepecyb01

complete emoji-posting

Mar 15th, 2025
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 325.20 KB | None | 0 0
  1. HTTP/2 200
  2. server: nginx
  3. date: Sat, 15 Mar 2025 17:40:56 GMT
  4. content-type: text/html; charset=utf-8
  5. x-sso-wat: You've just been SSOed
  6. set-cookie: PHPSESSID=thl4mfril8ougkeokitndsvi3p; path=/; secure; HttpOnly; SameSite=None
  7. expires: Thu, 19 Nov 1981 08:52:00 GMT
  8. cache-control: no-store, no-cache, must-revalidate
  9. pragma: no-cache
  10. link: <https://hub.hubzilla.hu/xrd?f=&uri=acct%3Apepecyb%40hub.hubzilla.hu>; rel="lrdd"; type="application/xrd+xml",<https://hub.hubzilla.hu/.well-known/webfinger?f=&resource=acct%3Apepecyb%40hub.hubzilla.hu>; rel="jrd"; type="application/jrd+json",<https://hub.hubzilla.hu/channel/pepecyb>; rel="alternate"; type="application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",<https://hub.hubzilla.hu/channel/pepecyb>; rel="alternate"; type="application/activity+json"
  11. strict-transport-security: max-age=63072000; includeSubDomains; preload
  12. content-security-policy: upgrade-insecure-requests
  13. permissions-policy: interest-cohort=()
  14. x-content-type-options: nosniff
  15. x-xss-protection: 1; mode=block
  16. x-download-options: noopen
  17. x-permitted-cross-domain-policies: none
  18. x-frame-options: SAMEORIGIN
  19.  
  20.  
  21. <!DOCTYPE html>
  22. <html lang="en">
  23.  
  24. <head>
  25. <meta charset="utf-8">
  26. <meta name="viewport" content="width=device-width, initial-scale=1">
  27. <title> - Der Pepe (Hubzilla) ⁂ ⚝ - [email protected]</title>
  28. <script>
  29. var baseurl = "https://hub.hubzilla.hu";
  30. </script>
  31. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  32. <base href="https://hub.hubzilla.hu/" />
  33. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0" />
  34.  
  35. <meta name="application-name" content="hubzilla" />
  36. <meta name="generator" content="hubzilla" />
  37. <meta name="theme-color" content="" />
  38.  
  39. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/hilite/Text_Highlighter/sample.css?v=10.0.8" type="text/css" media="screen">
  40. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/b2tbtn/view/css/b2tbtn.css?v=10.0.8" type="text/css" media="screen">
  41. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/lib/photoswipe5/dist/photoswipe.css?v=10.0.8" type="text/css" media="screen">
  42. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/view/css/gallery.css?v=10.0.8" type="text/css" media="screen">
  43. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/jRange/jquery.range.css?v=10.0.8" type="text/css" media="screen">
  44. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/conversation.css?v=10.0.8" type="text/css" media="screen">
  45. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/widgets.css?v=10.0.8" type="text/css" media="screen">
  46. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/colorbox.css?v=10.0.8" type="text/css" media="screen">
  47. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/justifiedGallery/justifiedGallery.min.css?v=10.0.8" type="text/css" media="screen">
  48. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.css?v=10.0.8" type="text/css" media="screen">
  49. <link rel="stylesheet" href="https://hub.hubzilla.hu/vendor/twbs/bootstrap-icons/font/bootstrap-icons.min.css?v=10.0.8" type="text/css" media="screen">
  50. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.css?v=10.0.8" type="text/css" media="screen">
  51. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css?v=10.0.8" type="text/css" media="screen">
  52. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/adminlte.css?v=10.0.8" type="text/css" media="screen">
  53. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/bootstrap.min.css?v=10.0.8" type="text/css" media="screen">
  54. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/overlayscrollbar.min.css?v=10.0.8" type="text/css" media="screen">
  55. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/default.css?v=10.0.8" type="text/css" media="screen">
  56. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/php/style.css?puid=5&updt=1725916434&v=10.0.8" type="text/css" media="screen">
  57.  
  58. <script>
  59.  
  60. var aStr = {
  61.  
  62. 'delitem' : "Delete this item?",
  63. 'itemdel' : "Item deleted",
  64. 'comment' : "Comment",
  65. 'showmore' : "show all",
  66. 'showfewer' : "show less",
  67. 'divgrowmore' : "expand",
  68. 'divgrowless' : "collapse",
  69. 'pwshort' : "Password too short",
  70. 'pwnomatch' : "Passwords do not match",
  71. 'everybody' : "everybody",
  72. 'passphrase' : "Secret Passphrase",
  73. 'passhint' : "Passphrase hint",
  74. 'permschange' : "Notice: Permissions have changed but have not yet been submitted.",
  75. 'closeAll' : "close all",
  76. 'nothingnew' : "Nothing new here",
  77. 'rating_desc' : "Rate This Channel (this is public)",
  78. 'rating_val' : "Rating",
  79. 'rating_text' : "Describe (optional)",
  80. 'submit' : "Submit",
  81. 'linkurl' : "Please enter a link URL",
  82. 'leavethispage' : "Unsaved changes. Are you sure you wish to leave this page?",
  83. 'location' : "Location",
  84. 'lovely' : "lovely",
  85. 'wonderful' : "wonderful",
  86. 'fantastic' : "fantastic",
  87. 'great' : "great",
  88. 'nick_invld1' : "Your chosen nickname was either already taken or not valid. Please use our suggestion (",
  89. 'nick_invld2' : ") or enter a new one.",
  90. 'nick_valid' : "Thank you, this nickname is valid.",
  91. 'name_empty' : "A channel name is required.",
  92. 'name_ok1' : "This is a ",
  93. 'name_ok2' : " channel name",
  94. 'to_reply' : "Back to reply",
  95. 'pinned' : "Pinned",
  96. 'pin_item' : "Pin to the top",
  97. 'unpin_item' : "Unpin from the top",
  98.  
  99. 'monthNames' : [ "January","February","March","April","May","June","July","August","September","October","November","December" ],
  100. 'monthNamesShort' : [ "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" ],
  101. 'dayNames' : ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
  102. 'dayNamesShort' : ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
  103. 'today' : "today",
  104. 'month' : "month",
  105. 'week' : "week",
  106. 'day' : "day",
  107. 'allday' : "All day",
  108.  
  109. // mod cloud
  110. 'download_info' : "Please stand by while your download is being prepared.",
  111.  
  112. // mod register
  113. 'email_not_valid' : "Email address not valid",
  114. 'email_required' : "Required"
  115.  
  116. };
  117.  
  118. </script>
  119.  
  120.  
  121. <script src="https://hub.hubzilla.hu/view/js/jquery.js?v=10.0.8"></script>
  122. <script src="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.js?v=10.0.8"></script>
  123. <script src="https://hub.hubzilla.hu/library/justifiedGallery/jquery.justifiedGallery.min.js?v=10.0.8"></script>
  124. <script src="https://hub.hubzilla.hu/library/sprintf.js/dist/sprintf.min.js?v=10.0.8"></script>
  125. <script src="https://hub.hubzilla.hu/library/textcomplete/textcomplete.min.js?v=10.0.8"></script>
  126. <script src="https://hub.hubzilla.hu/view/js/autocomplete.js?v=10.0.8"></script>
  127. <script src="https://hub.hubzilla.hu/library/readmore.js/readmore.js?v=10.0.8"></script>
  128. <script src="https://hub.hubzilla.hu/library/sjcl/sjcl.js?v=10.0.8"></script>
  129. <script src="https://hub.hubzilla.hu/library/sodium-plus/dist/sodium-plus.min.js?v=10.0.8"></script>
  130. <script src="https://hub.hubzilla.hu/view/js/acl.js?v=10.0.8"></script>
  131. <script src="https://hub.hubzilla.hu/view/js/webtoolkit.base64.js?v=10.0.8"></script>
  132. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  133. <script src="https://hub.hubzilla.hu/view/js/crypto.js?v=10.0.8"></script>
  134. <script src="https://hub.hubzilla.hu/library/jRange/jquery.range.js?v=10.0.8"></script>
  135. <script src="https://hub.hubzilla.hu/library/colorbox/jquery.colorbox-min.js?v=10.0.8"></script>
  136. <script src="https://hub.hubzilla.hu/library/jquery.AreYouSure/jquery.are-you-sure.js?v=10.0.8"></script>
  137. <script src="https://hub.hubzilla.hu/library/tableofcontents/jquery.toc.js?v=10.0.8"></script>
  138. <script src="https://hub.hubzilla.hu/library/Sortable/Sortable.min.js?v=10.0.8"></script>
  139. <script src="https://hub.hubzilla.hu/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js?v=10.0.8"></script>
  140. <script src="https://hub.hubzilla.hu/library/bootbox/bootbox.min.js?v=10.0.8"></script>
  141. <script src="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.js?v=10.0.8"></script>
  142. <script src="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js?v=10.0.8"></script>
  143. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/adminlte.min.js?v=10.0.8"></script>
  144. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/overlayscrollbar.min.js?v=10.0.8"></script>
  145.  
  146. <link rel="alternate" type="application/atom+xml" title="Posts and comments" href="https://hub.hubzilla.hu/feed/pepecyb" />
  147. <link rel="alternate" type="application/atom+xml" title="Only posts" href="https://hub.hubzilla.hu/feed/pepecyb?f=&top=1" />
  148. <link rel="alternate" type="application/json+oembed" href="https://hub.hubzilla.hu/oep?f=&url=https%3A%2F%2Fhub.hubzilla.hu%2Fchannel%2Fpepecyb%3Fmid%3D4c683a95-be61-4b2a-a7b4-366e37085cb1" title="oembed" />
  149. <link rel="manifest" href="/manifest.json" />
  150. <link rel="shortcut icon" href="https://hub.hubzilla.hu/photo/profile/m/5" />
  151. <link rel="apple-touch-icon" href="/images/app/hz-192.png" />
  152. <link rel="search" href="https://hub.hubzilla.hu/opensearch" type="application/opensearchdescription+xml" title="Search Whoville (Hubzilla)" />
  153.  
  154.  
  155. <script>
  156. var lang = 'en';
  157. var updateInterval = 80000;
  158. var sse_enabled = 0;
  159. var localUser = false;
  160. var zid = null;
  161. var justifiedGalleryActive = false;
  162. var channelId = 5; var preloadImages = 0;
  163. var auto_save_draft = true;
  164. var module = 'channel';</script>
  165.  
  166.  
  167.  
  168. <meta name="keywords" content="ungarn,hungary,magyarorsz&aacute;g,vape,linux,gitarre,guitar,selfhost,s04,discworld,scheibenwelt,pratchett,hubzilla,pfrunzel,firefish,fediverse" />
  169. <meta property="og:title" content="Der Pepe (Hubzilla) ⁂ ⚝">
  170. <meta property="og:image" content="https://hub.hubzilla.hu/photo/profile/l/5">
  171. <meta property="og:image:type" content="image/png">
  172. <meta property="og:description" content="@Der Pepe (Forte) ⁂ ⚝ Test-Posting zur Diagnose">
  173. <meta property="og:type" content="article">
  174. <script>
  175.  
  176. var bParam_cmd = "https://hub.hubzilla.hu/update/channel";
  177.  
  178. var conv_mode = 'channel';
  179.  
  180. var page_mode = 'client';
  181.  
  182. var bParam_uid = 5;
  183. var bParam_gid = 0;
  184. var bParam_cid = 0;
  185. var bParam_cmin = (-1);
  186. var bParam_cmax = (-1);
  187. var bParam_star = 0;
  188. var bParam_liked = 0;
  189. var bParam_conv = 0;
  190. var bParam_spam = 0;
  191. var bParam_new = 0;
  192. var bParam_page = 1;
  193. var bParam_wall = 1;
  194. var bParam_list = 0;
  195. var bParam_fh = 0;
  196. var bParam_dm = 0;
  197.  
  198. var bParam_search = "";
  199. var bParam_xchan = "";
  200. var bParam_order = "post";
  201. var bParam_file = "";
  202. var bParam_cats = "";
  203. var bParam_tags = "";
  204. var bParam_dend = "";
  205. var bParam_dbegin = "";
  206. var bParam_mid = "4c683a95-be61-4b2a-a7b4-366e37085cb1";
  207. var bParam_verb = "";
  208. var bParam_net = "";
  209. var bParam_pf = "";
  210. var bParam_unseen = "";
  211.  
  212. function buildCmd() {
  213. let udargs = ((page_load) ? "/load" : "");
  214. let bCmd = bParam_cmd + udargs;
  215.  
  216. if(bParam_uid) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "p=" + bParam_uid;
  217. if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmin=" + bParam_cmin;
  218. if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmax=" + bParam_cmax;
  219. if(bParam_gid != 0) { bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "gid=" + bParam_gid; } else
  220. if(bParam_cid != 0) { bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cid=" + bParam_cid; }
  221. if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "star=" + bParam_star;
  222. if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "liked=" + bParam_liked;
  223. if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "conv=" + bParam_conv;
  224. if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "spam=" + bParam_spam;
  225. if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "new=" + bParam_new;
  226. if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "wall=" + bParam_wall;
  227. if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "list=" + bParam_list;
  228. if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "fh=" + bParam_fh;
  229. if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dm=" + bParam_dm;
  230. if(bParam_search != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "search=" + bParam_search;
  231. if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "xchan=" + bParam_xchan;
  232. if(bParam_order != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "order=" + bParam_order;
  233. if(bParam_file != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "file=" + bParam_file;
  234. if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cat=" + bParam_cats;
  235. if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "tag=" + bParam_tags;
  236. if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dend=" + bParam_dend;
  237. if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dbegin=" + bParam_dbegin;
  238. if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "mid=" + bParam_mid;
  239. if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "verb=" + bParam_verb;
  240. if(bParam_net != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "net=" + bParam_net;
  241. if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "page=" + bParam_page;
  242. if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "pf=" + bParam_pf;
  243. if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "unseen=" + bParam_unseen;
  244. return(bCmd);
  245. }
  246.  
  247. </script>
  248.  
  249. <script src="/addon/gallery/view/js/gallery.js" type="module"></script><script>$(document).ready(function() { $("#nav-search-text").search_autocomplete('https://hub.hubzilla.hu/acl');});</script><script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  250. </head>
  251.  
  252. <body class="layout-fixed sidebar-expand-md sidebar-mini bg-body-tertiary app-loaded sidebar-open">
  253. <div class="app-wrapper">
  254.  
  255. <header><div id="toast-container" class="vstack gap-3 m-3 position-fixed bottom-0 end-0"></div>
  256. </header>
  257. <nav class="app-header navbar navbar-expand bg-body border-0 sticky-top"> <!--begin::Container-->
  258. <div class="container-fluid"> <!--begin::Start Navbar Links-->
  259. <ul class="navbar-nav">
  260. <li class="nav-item">
  261. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"><i class="bi bi-layout-sidebar"></i></a>
  262. </li>
  263. </ul>
  264. <ul class="navbar-nav">
  265. </ul>
  266.  
  267. <!-- Right navbar links -->
  268. <ul class="navbar-nav ml-auto">
  269. <!-- App settings icon-->
  270.  
  271. <!-- Navbar Search -->
  272. <li class="nav-item d-none d-md-block">
  273. <div class="navbar-search-block">
  274. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  275. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  276. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  277. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  278. </form>
  279. </div>
  280. </li>
  281. <!-- notificattion button for smaller screens-->
  282. <li id="notifications-btn" class="nav-item d-md-none">
  283. <a class="nav-link notifications-btn" id="notifications-btn-icon" href="#"><i class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
  284. </li>
  285. <script>
  286. document.getElementById('notifications-btn').addEventListener('click', function (event) {
  287. event.preventDefault(); // Prevent default link behavior
  288. });
  289. </script>
  290.  
  291.  
  292. <!-- user dowpdown menu-->
  293. <!--end::User Menu Dropdown-->
  294. <li class="nav-item mt-1 px-1">
  295. <a class="btn btn-primary btn-sm" href="login" title="Sign in">Login</a>
  296. </li>
  297. <li class="nav-item mt-1 px-1">
  298. <a class="btn btn-success btn-sm" href="register" title="Create an account">Register</a>
  299. </li>
  300.  
  301. <!-- right sidebar button on smaller screen-->
  302. <li class="nav-item">
  303. <a class="nav-link d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive"
  304. aria-controls="offcanvasResponsive"><i class="bi bi-layout-text-sidebar"></i></a>
  305. </li>
  306.  
  307. </ul> <!--end::End Navbar Links-->
  308. </div> <!--end::Container-->
  309. </nav>
  310.  
  311.  
  312. <!--begin::Sidebar-->
  313. <aside class="app-sidebar bg-dark shadow" data-bs-theme="dark">
  314. <!--begin::Sidebar Brand-->
  315. <div class="sidebar-brand">
  316. <!--begin::Brand Link-->
  317. <a href="/" class="brand-link">
  318. <!--begin::Brand Image-->
  319. <!-- <img
  320. src="./assets/img/AdminLTELogo.png"
  321. alt="U"
  322. class="brand-image opacity-75 shadow"
  323. /> -->
  324. <!--end::Brand Image-->
  325. <!--begin::Brand Text-->
  326. <span class="brand-text fw-light">Whoville</span>
  327. <!--end::Brand Text-->
  328. </a>
  329. <!--end::Brand Link-->
  330. </div>
  331. <!--end::Sidebar Brand-->
  332. <!--begin::Sidebar Wrapper-->
  333. <div class="sidebar-wrapper">
  334. <nav class="mt-2">
  335. <!--begin::Sidebar Menu-->
  336. <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
  337. <li class="nav-header pb-3 pt-1">
  338. <div id="bd-theme" class="btn-group" role="group" aria-label="Basic radio toggle button group">
  339. <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked
  340. data-bs-theme-value="auto">
  341. <label class="btn btn-sm btn-outline-primary" for="btnradio1"><i
  342. class="bi bi-circle-half me-2"></i>Auto</label>
  343.  
  344. <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off"
  345. data-bs-theme-value="dark">
  346. <label class="btn btn-sm btn-outline-primary" for="btnradio2"><i
  347. class="bi bi-moon-fill me-2"></i>Dark</label>
  348.  
  349. <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off"
  350. data-bs-theme-value="light">
  351. <label class="btn btn-sm btn-outline-primary" for="btnradio3"><i
  352. class="bi bi-sun-fill me-2"></i>Light</label>
  353. </div>
  354. </li>
  355. <li class="nav-header d-block d-md-none">
  356. <div class="navbar-search-block">
  357. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  358. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  359. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  360. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  361. </form>
  362. </div>
  363. </li>
  364.  
  365. <!-- Pinned user apps -->
  366. <!-- Channel apps; needs fixing -->
  367. <li class="nav-header" aria-disabled="true">Channel Apps</li>
  368. <li class="nav-item">
  369. <a class="nav-link active" href="https://hub.hubzilla.hu/channel/pepecyb" title="Status Messages and Posts"><i class="nav-icon bi bi-house"></i> <p>Channel</p> </a>
  370. </li>
  371. <li class="nav-item">
  372. <a class="nav-link" href="https://hub.hubzilla.hu/profile/pepecyb" title="Profile Details"><i class="nav-icon bi bi-person"></i> <p>About</p> </a>
  373. </li>
  374. <li class="nav-item">
  375. <a class="nav-link" href="https://hub.hubzilla.hu/photos/pepecyb" title="Photo Albums"><i class="nav-icon bi bi-image"></i> <p>Photos</p> </a>
  376. </li>
  377. <li class="nav-item">
  378. <a class="nav-link" href="https://hub.hubzilla.hu/cloud/pepecyb" title="Files and Storage"><i class="nav-icon bi bi-folder"></i> <p>Files</p> </a>
  379. </li>
  380. <li class="nav-item">
  381. <a class="nav-link" href="https://hub.hubzilla.hu/cal/pepecyb" title="Calendar"><i class="nav-icon bi bi-calendar-date"></i> <p>Calendar</p> </a>
  382. </li>
  383. <li class="nav-item">
  384. <a class="nav-link" href="https://hub.hubzilla.hu/gallery/pepecyb" title="Photo Gallery"><i class="nav-icon bi bi-image"></i> <p>Gallery</p> </a>
  385. </li>
  386. <li class="nav-item">
  387. <a class="nav-link" href="https://hub.hubzilla.hu/articles/pepecyb" title="View Articles"><i class="nav-icon bi bi-newspaper"></i> <p>Articles</p> </a>
  388. </li>
  389. <li class="nav-item">
  390. <a class="nav-link" href="https://hub.hubzilla.hu/cards/pepecyb" title="View Cards"><i class="nav-icon bi bi-card-text"></i> <p>Cards</p> </a>
  391. </li>
  392. <li class="nav-item">
  393. <a class="nav-link" href="https://hub.hubzilla.hu/wiki/pepecyb" title="View Cards"><i class="nav-icon bi bi-pencil-square"></i> <p>Wikis</p> </a>
  394. </li>
  395. <br>
  396.  
  397. <li class="nav-header" aria-disabled="true">System Apps</li>
  398. <!-- System apps -->
  399. <!-- other apps in main sidebar menu -->
  400. <li class="nav-item">
  401. <a href="https://hub.hubzilla.hu/directory" class="nav-link ">
  402. <i class="nav-icon bi bi-diagram-3"></i> <p>Directory</p>
  403. </a>
  404. </li>
  405.  
  406. <!-- other apps in main sidebar menu -->
  407. <li class="nav-item">
  408. <a href="https://hub.hubzilla.hu/help" class="nav-link ">
  409. <i class="nav-icon bi bi-question-lg"></i> <p>Help</p>
  410. </a>
  411. </li>
  412.  
  413. <!-- other apps in main sidebar menu -->
  414. <li class="nav-item">
  415. <a href="https://hub.hubzilla.hu/lang" class="nav-link ">
  416. <i class="nav-icon bi bi-translate"></i> <p>Language</p>
  417. </a>
  418. </li>
  419.  
  420. <!-- other apps in main sidebar menu -->
  421. <li class="nav-item">
  422. <a href="https://hub.hubzilla.hu/likebanner" class="nav-link ">
  423. <p>Like Us</p>
  424. </a>
  425. </li>
  426.  
  427. <!-- other apps in main sidebar menu -->
  428. <li class="nav-item">
  429. <a href="https://hub.hubzilla.hu/pubstream" class="nav-link ">
  430. <i class="nav-icon bi bi-globe"></i> <p>Public Stream</p>
  431. </a>
  432. </li>
  433.  
  434. <!-- other apps in main sidebar menu -->
  435. <li class="nav-item">
  436. <a href="https://hub.hubzilla.hu/qrator" class="nav-link ">
  437. <i class="nav-icon bi bi-qr-code"></i> <p>QRator</p>
  438. </a>
  439. </li>
  440.  
  441. <!-- other apps in main sidebar menu -->
  442. <li class="nav-item">
  443. <a href="https://hub.hubzilla.hu/randprof" class="nav-link ">
  444. <i class="nav-icon bi bi-shuffle"></i> <p>Random Channel</p>
  445. </a>
  446. </li>
  447.  
  448. <!-- other apps in main sidebar menu -->
  449. <li class="nav-item">
  450. <a href="https://framagit.org/hubzilla/core/issues" class="nav-link ">
  451. <i class="nav-icon bi bi-bug"></i> <p>Report Bug</p>
  452. </a>
  453. </li>
  454.  
  455. <!-- other apps in main sidebar menu -->
  456. <li class="nav-item">
  457. <a href="https://hub.hubzilla.hu/search" class="nav-link ">
  458. <i class="nav-icon bi bi-search"></i> <p>Search</p>
  459. </a>
  460. </li>
  461.  
  462. <!-- other apps in main sidebar menu -->
  463. <li class="nav-item">
  464. <a href="https://hub.hubzilla.hu/donate" class="nav-link ">
  465. <p>Support Hubzilla</p>
  466. </a>
  467. </li>
  468.  
  469. </ul>
  470. <!--end::Sidebar Menu-->
  471. </nav>
  472. </div>
  473. <!--end::Sidebar Wrapper-->
  474. </aside>
  475. <!--end::Sidebar-->
  476.  
  477. <script>
  478. document.addEventListener('DOMContentLoaded', function() {
  479. // Function to apply the saved sidebar state
  480. function applySavedState() {
  481. const isDesktop = window.innerWidth >= 768; // AdminLTE's desktop breakpoint
  482. const savedState = localStorage.getItem('sidebarCollapsed');
  483.  
  484. // Apply state only on desktop
  485. if (isDesktop && savedState !== null) {
  486. document.body.classList.toggle('sidebar-collapse', savedState === 'true');
  487. }
  488. }
  489.  
  490. // Apply saved state on initial load
  491. applySavedState();
  492.  
  493. // Re-apply state when window is resized to desktop
  494. window.addEventListener('resize', applySavedState);
  495.  
  496. // Watch for sidebar class changes to update localStorage
  497. const observer = new MutationObserver(function(mutations) {
  498. mutations.forEach(function(mutation) {
  499. if (mutation.attributeName === 'class') {
  500. const isDesktop = window.innerWidth >= 768;
  501. const isCollapsed = document.body.classList.contains('sidebar-collapse');
  502.  
  503. // Save state only for desktop interactions
  504. if (isDesktop) {
  505. localStorage.setItem('sidebarCollapsed', isCollapsed);
  506. }
  507. }
  508. });
  509. });
  510.  
  511. // Start observing the body element for class changes
  512. observer.observe(document.body, { attributes: true });
  513. });
  514. </script>
  515.  
  516. <!-- Content Wrapper. Contains page content -->
  517. <main class="app-main px-1 py-3" style="min-height: calc(100vh - 56px);">
  518. <div class="container-xl">
  519. <div class="row">
  520. <div id="region_2" class="col-12 col-md-12 col-lg-8">
  521.  
  522. <div id="live-channel"></div>
  523. <script> var profile_uid = 5; var netargs = '?f='; var profile_page = 1; divmore_height = 400;</script>
  524. <noscript><div id="threads-begin"></div>
  525. <div id="thread-wrapper-2669850" class="thread-wrapper toplevel_item card generic-content-wrapper h-entry mb-4 clearfix" data-b64mids='["4c683a95-be61-4b2a-a7b4-366e37085cb1","776ca57a-93d2-49cb-b24c-b4bccc45b417"]'>
  526. <a name="item_2669850" ></a>
  527. <div class="wall-item-outside-wrapper" id="wall-item-outside-wrapper-2669850" >
  528. <div class="rounded wall-item-content-wrapper" id="wall-item-content-wrapper-2669850">
  529. <div class="p-2 wall-item-head wall-item-head-new card-body clearfix">
  530. <div class="lh-sm text-end float-end">
  531. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669850">
  532. <i class="bi bi-geo-alt" title="Nagybaracska"></i>
  533. <i class="bi bi-shield-check" title="Message signature validated"></i>
  534. <small class="autotime" title="2025-03-15T14:07:15+01:00"><time class="dt-published" datetime="2025-03-15T14:07:15+01:00">2025-03-15 14:07:15</time></small>
  535. </div>
  536. </div>
  537. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669850" >
  538. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669850">
  539. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669850" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  540. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  541. <div class="dropdown-menu">
  542. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  543. </div>
  544. </div>
  545. </div>
  546. <div class="wall-item-author">
  547. <div class="text-truncate">
  548. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669850" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  549. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  550. </div>
  551. </div>
  552. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669850">
  553. <div class="wall-item-body e-content" id="wall-item-body-2669850">
  554. @<a href="https://forte.fedi-verse.hu/.well-known/apgateway/did:key:z6MkgFbpi3myEaHerEDnJAYUW9F1gHVCgM8zCD4F2f36bP2U/actor" target="_blank" rel="nofollow noopener" >Der Pepe (Forte) &#8258; &#9885;</a> <br /><br />Test-Posting zur Diagnose
  555. </div>
  556. </div>
  557. <div class="p-2 wall-item-tools d-flex justify-content-between">
  558. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669850">
  559. <div class="">
  560. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2669850">
  561. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  562. <div class="dropdown-menu">
  563. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  564. </div>
  565. <div class="">
  566. <div id="like-rotator-2669850" class="spinner-wrapper">
  567. <div class="spinner s"></div>
  568. </div>
  569. </div>
  570. </div>
  571. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669850">
  572. <div class="">
  573. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669850">
  574. <i class="bi bi-three-dots-vertical generic-icons"></i>
  575. </button>
  576. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669850">
  577. <a class="dropdown-item" href="https://hub.hubzilla.hu/item/4c683a95-be61-4b2a-a7b4-366e37085cb1" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  578. <div class="dropdown-divider"></div>
  579. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669850" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  580. </div>
  581. </div>
  582. </div>
  583. </div>
  584. </div>
  585. </div>
  586. <div id="thread-wrapper-2669928" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='["02bc673c-81ab-4384-86fa-493a67dcf7ce"]'>
  587. <a name="item_2669928" ></a>
  588. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2669928" >
  589. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2669928">
  590. <div class="p-2 wall-item-head card-body clearfix">
  591. <div class="lh-sm text-end float-end">
  592. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669928">
  593. <a href="http://starwars.com" target="_blank" rel="nofollow noopener" >Felucia</a>
  594. <i class="bi bi-shield-check" title="Message signature validated"></i>
  595. <small class="autotime" title="2025-03-15T14:18:59+01:00"><time class="dt-published" datetime="2025-03-15T14:18:59+01:00">2025-03-15 14:18:59</time></small>
  596. </div>
  597. </div>
  598. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669928" >
  599. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669928">
  600. <img src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669928" alt="Stefan Haydn" loading="lazy" data-bs-toggle="dropdown" />
  601. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  602. <div class="dropdown-menu">
  603. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" title="View Profile">View Profile</a>
  604. </div>
  605. </div>
  606. </div>
  607. <div class="wall-item-author">
  608. <div class="text-truncate">
  609. <a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669928" ><bdi>Stefan Haydn</bdi></span></a> </div>
  610. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  611. </div>
  612. </div>
  613. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669928">
  614. <div class="wall-item-body e-content" id="wall-item-body-2669928">
  615. Ist die Installation wie bei streams?
  616. </div>
  617. </div>
  618. <div class="p-2 wall-item-tools d-flex justify-content-between">
  619. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669928">
  620. <div class="">
  621. <div id="like-rotator-2669928" class="spinner-wrapper">
  622. <div class="spinner s"></div>
  623. </div>
  624. </div>
  625. </div>
  626. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669928">
  627. <div class="">
  628. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669928">
  629. <i class="bi bi-three-dots-vertical generic-icons"></i>
  630. </button>
  631. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669928">
  632. <a class="dropdown-item" href="https://hub.hayfidelity.de/item/02bc673c-81ab-4384-86fa-493a67dcf7ce" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  633. <div class="dropdown-divider"></div>
  634. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669928" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  635. </div>
  636. </div>
  637. </div>
  638. </div>
  639. </div>
  640. </div>
  641. </div>
  642. <div id="thread-wrapper-2670071" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='["398738ae-9974-4e8e-8007-225492532b6b","5238508f-6bf4-44cf-84ab-afebd9e8c33f"]'>
  643. <a name="item_2670071" ></a>
  644. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2670071" >
  645. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2670071">
  646. <div class="p-2 wall-item-head card-body clearfix">
  647. <div class="lh-sm text-end float-end">
  648. <div class="wall-item-ago opacity-75" id="wall-item-ago-2670071">
  649. <i class="bi bi-shield-check" title="Message signature validated"></i>
  650. <small class="autotime" title="2025-03-15T14:46:06+01:00"><time class="dt-published" datetime="2025-03-15T14:46:06+01:00">2025-03-15 14:46:06</time></small>
  651. </div>
  652. </div>
  653. <div class="float-start wall-item-info pe-2" id="wall-item-info-2670071" >
  654. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2670071">
  655. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2670071" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  656. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  657. <div class="dropdown-menu">
  658. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  659. </div>
  660. </div>
  661. </div>
  662. <div class="wall-item-author">
  663. <div class="text-truncate">
  664. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2670071" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  665. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  666. </div>
  667. </div>
  668. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2670071">
  669. <div class="wall-item-body e-content" id="wall-item-body-2670071">
  670. Ja, im Prinzip kein Unterschied. Läuft auch absolut geschmeidig.
  671. </div>
  672. </div>
  673. <div class="p-2 wall-item-tools d-flex justify-content-between">
  674. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2670071">
  675. <div class="">
  676. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2670071">
  677. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  678. <div class="dropdown-menu">
  679. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  680. </div>
  681. <div class="">
  682. <div id="like-rotator-2670071" class="spinner-wrapper">
  683. <div class="spinner s"></div>
  684. </div>
  685. </div>
  686. </div>
  687. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2670071">
  688. <div class="">
  689. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2670071">
  690. <i class="bi bi-three-dots-vertical generic-icons"></i>
  691. </button>
  692. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2670071">
  693. <a class="dropdown-item" href="https://hub.hubzilla.hu/display/398738ae-9974-4e8e-8007-225492532b6b" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  694. <div class="dropdown-divider"></div>
  695. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2670071" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  696. </div>
  697. </div>
  698. </div>
  699. </div>
  700. </div>
  701. </div>
  702. </div>
  703. </div>
  704. <div id="threads-end"></div>
  705. <div id="conversation-end"></div>
  706. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  707. <div class="modal-dialog">
  708. <div class="modal-content">
  709. <div class="modal-header">
  710. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  711. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  712. </div>
  713. <div class="modal-body" id="conversation_settings_body">
  714. Loading...
  715. </div>
  716. </div><!-- /.modal-content -->
  717. </div><!-- /.modal-dialog -->
  718. </div><!-- /.modal -->
  719. <div class="pager">
  720. <a href="https://hub.hubzilla.hu/channel/pepecyb?mid=4c683a95-be61-4b2a-a7b4-366e37085cb1&page=2" class="pager-next">older</a></div>
  721. </noscript><div id="threads-begin"></div>
  722. <div id="threads-end"></div>
  723. <div id="conversation-end"></div>
  724. <div id="page-spinner" class="spinner-wrapper">
  725. <div class="spinner m"></div>
  726. <div id="image_counter" class="text-muted text-center small"></div>
  727. </div>
  728. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  729. <div class="modal-dialog">
  730. <div class="modal-content">
  731. <div class="modal-header">
  732. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  733. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  734. </div>
  735. <div class="modal-body" id="conversation_settings_body">
  736. Loading...
  737. </div>
  738. </div><!-- /.modal-content -->
  739. </div><!-- /.modal-dialog -->
  740. </div><!-- /.modal -->
  741. <div id="edit-modal" class="modal" tabindex="-1">
  742. <div class="modal-dialog">
  743. <div class="modal-content">
  744. <div class="modal-header">
  745. <div id="edit-modal-title" class="modal-title w-75">
  746. <div class="placeholder-wave">
  747. <span class="placeholder placeholder-lg" style="width: 200px;"></span>
  748. </div>
  749. </div>
  750. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  751. </div>
  752. <div id="edit-modal-body" class="modal-body">
  753. <div class="placeholder-wave">
  754. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  755. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  756. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  757. </div>
  758. </div>
  759. <div class="modal-footer">
  760. <div id="edit-modal-tools" class="me-auto"></div>
  761. <button id="contact-save" type="button" class="btn btn-primary"></button>
  762. </div>
  763. </div>
  764. </div>
  765. </div>
  766. <script>
  767.  
  768. let poi;
  769. let section = 'roles';
  770. let sub_section;
  771.  
  772. $(document).ready(function() {
  773. if (window.location.hash) {
  774. poi = window.location.hash.substr(1);
  775. init_contact_edit(poi);
  776. }
  777.  
  778. window.onhashchange = function() {
  779. if (window.location.hash) {
  780. poi = window.location.hash.substr(1);
  781. init_contact_edit(poi);
  782. }
  783. };
  784. });
  785.  
  786. $(document).on('click', '.contact-edit', function (e) {
  787. e.preventDefault();
  788. poi = this.dataset.id
  789. init_contact_edit(poi);
  790. });
  791.  
  792. $(document).on('click', '#contact-save', function () {
  793. let form_data = $('#contact-edit-form').serialize() + '&section=' + section + '&sub_section=' + sub_section;
  794.  
  795. $.post('contactedit/' + poi, form_data, function(data) {
  796. if (!data.success) {
  797. toast(data.message, 'danger');
  798. return;
  799. }
  800. activate(data);
  801. toast(data.message, ((data.success) ? 'info' : 'danger'));
  802. // $('#edit-modal').modal('hide');
  803. });
  804.  
  805. });
  806.  
  807. $(document).on('click', '.contact-tool', function (e) {
  808. e.preventDefault();
  809. let cmd = this.dataset.cmd;
  810.  
  811. $.get('contactedit/' + poi + '/' + cmd, function(data) {
  812. $('#edit-modal-tools').html(data.tools);
  813. toast(data.message, ((data.success) ? 'info' : 'danger'));
  814. if (cmd === 'drop') {
  815. if ($('#contact-entry-wrapper-' + poi).length) {
  816. $('#contact-entry-wrapper-' + poi).fadeOut();
  817. }
  818. $('#edit-modal').modal('hide');
  819. }
  820. });
  821. });
  822.  
  823. $(document).on('click', '.section', function () {
  824. section = this.dataset.section;
  825. sub_section = '';
  826. });
  827.  
  828. $(document).on('click', '.sub_section', function () {
  829. if ($(this).hasClass('sub_section_active')) {
  830. $(this).removeClass('sub_section_active');
  831. sub_section = '';
  832. }
  833. else {
  834. $(this).addClass('sub_section_active');
  835. sub_section = this.dataset.section;
  836. }
  837. });
  838.  
  839. $('#edit-modal').on('hidden.bs.modal', function (e) {
  840. if (window.location.hash) {
  841. history.replaceState(null, '', 'connections');
  842. }
  843. });
  844.  
  845. function init_contact_edit(poi) {
  846. if (!poi)
  847. return;
  848.  
  849. $('.contact-edit-rotator-' + poi).addClass('d-inline-block');
  850. $('.contact-edit-icon-' + poi).hide();
  851. $.get('contactedit/' + poi, function(data) {
  852. if (!data.success) {
  853. toast(data.message, 'danger');
  854. return;
  855. }
  856. $('#edit-modal').modal('show');
  857. activate(data);
  858. });
  859. }
  860.  
  861. function activate(data) {
  862. $('#contact-save').removeClass('disabled');
  863. $('#contact-tools').removeClass('disabled');
  864. $('.contact-edit-rotator-' + poi).removeClass('d-inline-block');
  865. $('.contact-edit-icon-' + poi).show();
  866.  
  867. if (data.title) {
  868. $('#edit-modal-title').html(data.title);
  869. }
  870.  
  871. if (data.body) {
  872. $('#edit-modal-body').html(data.body);
  873. }
  874.  
  875. if (data.tools) {
  876. $('#edit-modal-tools').html(data.tools);
  877. }
  878.  
  879. if (data.submit) {
  880. $('#contact-save').html(data.submit);
  881. }
  882.  
  883. if (data.role && $('#contact-role-' + poi).length) {
  884. $('#contact-role-' + poi).html(data.role);
  885. }
  886.  
  887. if (data.pending) {
  888. $('#contact-save').removeClass('btn-primary');
  889. $('#contact-save').addClass('btn-success');
  890. }
  891. else {
  892. $('#contact-save').addClass('btn-primary');
  893. $('#contact-save').removeClass('btn-success');
  894. }
  895. }
  896. </script>
  897. <div id="content-complete"></div>
  898. <script>
  899. $(document).ready(function(){
  900.  
  901. // hide #back-top first
  902. $("#back-top").hide();
  903.  
  904. // fade in #back-top
  905. $(function () {
  906. $(window).scroll(function () {
  907. if ($(this).scrollTop() > 100) {
  908. $('#back-top').fadeIn();
  909. } else {
  910. $('#back-top').fadeOut();
  911. }
  912. });
  913.  
  914. // scroll body to 0px on click
  915. $('#back-top a').click(function () {
  916. $('body,html').animate({
  917. scrollTop: 0
  918. }, 150);
  919. return false;
  920. });
  921. });
  922.  
  923. });
  924. </script><p id="back-top"><a href="#top"><span></span></a></p>
  925.  
  926. </div>
  927.  
  928. <div class="d-lg-block col-lg-4 sticky-column pe-0">
  929. <div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
  930. <div class="offcanvas-header mt-2">
  931. <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
  932. </div>
  933. <div class="offcanvas-body px-0">
  934. <div class="container row pe-0">
  935. <div id="region_1" class="pe-0">
  936. <div id="left_aside_wrapper">
  937.  
  938. <script>
  939. var sse_bs_active = false;
  940. var sse_offset = 0;
  941. var sse_type;
  942. var sse_partial_result = false;
  943. var sse_rmids = [];
  944. var sse_fallback_interval;
  945. var sse_sys_only = 0;
  946.  
  947. document.addEventListener("DOMContentLoaded", function() {
  948. let notificationsWrapper = document.getElementById('notifications_wrapper');
  949. let notificationsParent = notificationsWrapper ? notificationsWrapper.parentElement.id : null;
  950. let notificationsBtn = document.querySelector('.notifications-btn');
  951.  
  952. // Event listener for notifications button
  953. if (notificationsBtn) {
  954. notificationsBtn.addEventListener('click', function() {
  955. // Remove the 'd-none' class to show the notifications wrapper
  956. notificationsWrapper.classList.remove('d-none');
  957.  
  958. // Check if the notifications wrapper has the 'fs' class
  959. if (notificationsWrapper.classList.contains('fs')) {
  960. // Prepend the notifications wrapper back to its original parent and hide it
  961. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  962. notificationsWrapper.classList.add('d-none');
  963. } else {
  964. // Otherwise, prepend the notifications wrapper to 'main'
  965. document.querySelector('main').prepend(notificationsWrapper);
  966. }
  967.  
  968. // Toggle the 'fs' class
  969. notificationsWrapper.classList.toggle('fs');
  970. });
  971. }
  972.  
  973. // Event listener for clicking a notification
  974. document.addEventListener('click', function(event) {
  975. if (event.target.closest('a') && event.target.closest('a').classList.contains('notification')) {
  976. console.log(1)
  977. if (notificationsWrapper.classList.contains('fs')) {
  978. // Move notifications wrapper back to its original parent and hide it
  979. notificationsWrapper.classList.remove('fs');
  980. notificationsWrapper.classList.add('d-none');
  981. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  982.  
  983. }
  984. }
  985. });
  986.  
  987. if(sse_enabled) {
  988. if(typeof(window.SharedWorker) === 'undefined') {
  989. // notifications with multiple tabs open will not work very well in this scenario
  990. let evtSource = new EventSource('/sse');
  991.  
  992. evtSource.addEventListener('notifications', function(e) {
  993. let obj = JSON.parse(e.data);
  994. sse_handleNotifications(obj, false, false);
  995. }, false);
  996.  
  997. document.addEventListener('visibilitychange', function() {
  998. if (!document.hidden) {
  999. sse_offset = 0;
  1000. sse_bs_init();
  1001. }
  1002. }, false);
  1003.  
  1004. }
  1005. else {
  1006. let myWorker = new SharedWorker('/view/js/sse_worker.js', localUser);
  1007.  
  1008. myWorker.port.onmessage = function(e) {
  1009. obj = e.data;
  1010. console.log(obj);
  1011. sse_handleNotifications(obj, false, false);
  1012. }
  1013.  
  1014. myWorker.onerror = function(e) {
  1015. myWorker.port.close();
  1016. }
  1017.  
  1018. myWorker.port.start();
  1019. }
  1020. }
  1021. else {
  1022. if (!document.hidden) {
  1023. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  1024. }
  1025.  
  1026. document.addEventListener('visibilitychange', function() {
  1027. if (document.hidden) {
  1028. clearInterval(sse_fallback_interval);
  1029. }
  1030. else {
  1031. sse_offset = 0;
  1032. sse_bs_init();
  1033. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  1034. }
  1035.  
  1036. }, false);
  1037. }
  1038.  
  1039. document.querySelectorAll('.notification-link').forEach(function (element) {
  1040. element.addEventListener('click', function (element) {
  1041. sse_bs_notifications(element, true, false);
  1042. });
  1043. });
  1044.  
  1045. document.querySelectorAll('.notification-filter').forEach(function (element) {
  1046. element.addEventListener('keypress', function(e) {
  1047. if (e.which == 13) { // Enter key
  1048. this.blur();
  1049. sse_offset = 0;
  1050.  
  1051. // Clear the content of the menu
  1052. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  1053.  
  1054. // Show the loading element
  1055. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  1056.  
  1057. // Get the value from the input element
  1058. var cn_val = document.getElementById('cn-' + sse_type + '-input') ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase() : '';
  1059.  
  1060. // Send a GET request using the Fetch API
  1061. fetch('/sse_bs/' + sse_type + '/' + sse_offset + '?nquery=' + encodeURIComponent(cn_val))
  1062. .then(response => response.json())
  1063. .then(obj => {
  1064. console.log('sse: bootstraping ' + sse_type);
  1065. console.log(obj);
  1066.  
  1067. sse_bs_active = false;
  1068. sse_partial_result = true;
  1069. sse_offset = obj[sse_type].offset;
  1070. if (sse_offset < 0) {
  1071. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  1072. }
  1073.  
  1074. sse_handleNotifications(obj, true, false);
  1075. })
  1076. .catch(error => {
  1077. console.error('Error fetching data:', error);
  1078. });
  1079. }
  1080. });
  1081. });
  1082.  
  1083. document.querySelectorAll('.notifications-textinput-clear').forEach(function (element) {
  1084. element.addEventListener('click', function(e) {
  1085. if (!sse_partial_result) return;
  1086.  
  1087. // Clear the content of the menu
  1088. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  1089.  
  1090. // Show the loading element
  1091. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  1092.  
  1093. // Send a GET request using the Fetch API
  1094. fetch('/sse_bs/' + sse_type)
  1095. .then(response => response.json())
  1096. .then(obj => {
  1097. console.log('sse: bootstraping ' + sse_type);
  1098. console.log(obj);
  1099.  
  1100. sse_bs_active = false;
  1101. sse_partial_result = false;
  1102. sse_offset = obj[sse_type].offset;
  1103. if (sse_offset < 0) {
  1104. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  1105. }
  1106.  
  1107. sse_handleNotifications(obj, true, false);
  1108. })
  1109. .catch(error => {
  1110. console.error('Error fetching data:', error);
  1111. });
  1112. });
  1113. });
  1114.  
  1115. document.querySelectorAll('.notification-content').forEach(function(element) {
  1116. element.addEventListener('scroll', function() {
  1117. if (this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight / 7)) {
  1118. sse_bs_notifications(sse_type, false, true);
  1119. }
  1120. });
  1121. });
  1122.  
  1123.  
  1124. document.querySelectorAll('#tt-pubs-only').forEach(function (element) {
  1125. element.addEventListener('click', function(e) {
  1126.  
  1127. let element = e.target.closest('div');
  1128. let menu = document.querySelector('#nav-pubs-menu');
  1129. let notifications = menu.querySelectorAll('.notification[data-thread_top="false"]');
  1130.  
  1131. // Function to check if an element is visible
  1132. function isVisible(el) {
  1133. return el.offsetWidth > 0 && el.offsetHeight > 0;
  1134. }
  1135.  
  1136. if (element.classList.contains('active') && element.classList.contains('sticky-top')) {
  1137. notifications.forEach(function(notification) {
  1138. notification.classList.remove('tt-filter-active');
  1139. });
  1140. element.classList.remove('active', 'sticky-top');
  1141. } else {
  1142. notifications.forEach(function(notification) {
  1143. notification.classList.add('tt-filter-active');
  1144. });
  1145. element.classList.add('active', 'sticky-top');
  1146.  
  1147. // Count the visible notifications
  1148. let visibleNotifications = Array.from(menu.querySelectorAll('.notification')).filter(isVisible).length;
  1149.  
  1150. // Load more notifications if the visible count is low
  1151. if (sse_type && sse_offset !== -1 && visibleNotifications < 15) {
  1152. sse_bs_notifications(sse_type, false, true);
  1153. }
  1154. }
  1155.  
  1156. });
  1157. });
  1158.  
  1159. document.querySelectorAll('#cn-pubs-input-clear').forEach(function (element) {
  1160. element.addEventListener('click', function(e) {
  1161. let input = document.getElementById('cn-pubs-input');
  1162. input.value = '';
  1163.  
  1164. // Remove 'active' and 'sticky-top' classes to the 'only' element
  1165. let onlyElement = document.getElementById('cn-pubs-only');
  1166. onlyElement.classList.remove('active', 'sticky-top');
  1167.  
  1168. // Add 'd-none' class from the clear button
  1169. let clearButton = document.getElementById('cn-pubs-input-clear');
  1170. clearButton.classList.add('d-none');
  1171.  
  1172. // Remove the 'cn-filter-active' class from all notifications
  1173. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  1174. notifications.forEach(function(notification) {
  1175. notification.classList.remove('cn-filter-active');
  1176. });
  1177. });
  1178. });
  1179.  
  1180. document.querySelectorAll('#cn-pubs-input').forEach(function (element) {
  1181. element.addEventListener('input', function(e) {
  1182. let input = e.target;
  1183. let val = input.value.toString().toLowerCase();
  1184.  
  1185. // Check if there is input value
  1186. if (val) {
  1187. // Remove '%' if it's at the beginning of the input value
  1188. val = val.indexOf('%') === 0 ? val.substring(1) : val;
  1189.  
  1190. // Add 'active' and 'sticky-top' classes to the 'only' element
  1191. let onlyElement = document.getElementById('cn-pubs-only');
  1192. onlyElement.classList.add('active', 'sticky-top');
  1193.  
  1194. // Remove 'd-none' class from the clear button
  1195. let clearButton = document.getElementById('cn-pubs-input-clear');
  1196. clearButton.classList.remove('d-none');
  1197. } else {
  1198. // Remove 'active' and 'sticky-top' classes from the 'only' element
  1199. let onlyElement = document.getElementById('cn-pubs-only');
  1200. onlyElement.classList.remove('active', 'sticky-top');
  1201.  
  1202. // Add 'd-none' class to the clear button
  1203. let clearButton = document.getElementById('cn-pubs-input-clear');
  1204. clearButton.classList.add('d-none');
  1205. }
  1206.  
  1207. // Loop through each notification and apply filter logic
  1208. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  1209. notifications.forEach(function(el) {
  1210. let cn = el.dataset.contact_name.toString().toLowerCase();
  1211. let ca = el.dataset.contact_addr.toString().toLowerCase();
  1212.  
  1213. // Check if the contact name or address matches the input value
  1214. if (cn.indexOf(val) === -1 && ca.indexOf(val) === -1) {
  1215. el.classList.add('cn-filter-active');
  1216. } else {
  1217. el.classList.remove('cn-filter-active');
  1218. }
  1219. });
  1220. });
  1221. });
  1222.  
  1223.  
  1224. });
  1225.  
  1226. document.addEventListener('hz:sse_setNotificationsStatus', function(e) {
  1227. sse_setNotificationsStatus(e.detail);
  1228. });
  1229.  
  1230. document.addEventListener('hz:sse_bs_init', function() {
  1231. sse_bs_init();
  1232. });
  1233.  
  1234. document.addEventListener('hz:sse_bs_counts', function() {
  1235. sse_bs_counts();
  1236. });
  1237.  
  1238.  
  1239. function sse_bs_init() {
  1240. // Check if 'notification_open' exists in sessionStorage or if sse_type is defined
  1241. if (sessionStorage.getItem('notification_open') !== null || typeof sse_type !== 'undefined') {
  1242. if (typeof sse_type === 'undefined') {
  1243. sse_type = sessionStorage.getItem('notification_open');
  1244. }
  1245.  
  1246. // Add the 'show' class to the appropriate element
  1247. let subNav = document.getElementById("nav-" + sse_type + "-sub");
  1248. if (subNav) {
  1249. subNav.classList.add('show');
  1250. }
  1251.  
  1252. // Call the sse_bs_notifications function
  1253. sse_bs_notifications(sse_type, true, false);
  1254. } else {
  1255. // Call the sse_bs_counts function if conditions are not met
  1256. sse_bs_counts();
  1257. }
  1258. }
  1259.  
  1260. function sse_bs_counts() {
  1261. if (sse_bs_active || sse_sys_only) {
  1262. return;
  1263. }
  1264.  
  1265. sse_bs_active = true;
  1266.  
  1267. // Use the fetch API to send the POST request with the data
  1268. fetch('/sse_bs', {
  1269. method: 'POST',
  1270. body: new URLSearchParams({sse_rmids: sse_rmids})
  1271. })
  1272. .then(response => response.json()) // Parse the JSON response
  1273. .then(obj => {
  1274. console.log(obj);
  1275. sse_bs_active = false;
  1276. sse_rmids = [];
  1277. sse_handleNotifications(obj, true, false);
  1278. })
  1279. .catch(error => {
  1280. console.error('Error:', error);
  1281. sse_bs_active = false;
  1282. });
  1283. }
  1284.  
  1285. function sse_bs_notifications(e, replace, followup) {
  1286. if (sse_bs_active || sse_sys_only) {
  1287. return;
  1288. }
  1289.  
  1290. let manual = false;
  1291.  
  1292. if (typeof replace === 'undefined') {
  1293. replace = e.data.replace;
  1294. }
  1295.  
  1296. if (typeof followup === 'undefined') {
  1297. followup = e.data.followup;
  1298. }
  1299.  
  1300. if (typeof e === 'string') {
  1301. sse_type = e;
  1302. } else {
  1303. manual = true;
  1304. sse_offset = 0;
  1305. sse_type = e.target.dataset.sse_type;
  1306. }
  1307.  
  1308. if (typeof sse_type === 'undefined') {
  1309. return;
  1310. }
  1311.  
  1312. if (followup || !manual || !document.getElementById('notification-link-' + sse_type).classList.contains('collapsed')) {
  1313.  
  1314. if (sse_offset >= 0) {
  1315. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  1316. }
  1317.  
  1318. sessionStorage.setItem('notification_open', sse_type);
  1319.  
  1320. if (sse_offset !== -1 || replace) {
  1321. let cn_val = (document.getElementById('cn-' + sse_type + '-input') && sse_partial_result)
  1322. ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase()
  1323. : '';
  1324.  
  1325. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  1326.  
  1327. sse_bs_active = true;
  1328.  
  1329. // Send POST request using fetch API
  1330. fetch('/sse_bs/' + sse_type + '/' + sse_offset, {
  1331. method: 'POST',
  1332. body: new URLSearchParams({
  1333. sse_rmids: sse_rmids,
  1334. nquery: encodeURIComponent(cn_val)
  1335. })
  1336. })
  1337. .then(response => response.json()) // Parse the JSON response
  1338. .then(obj => {
  1339. console.log('sse: bootstraping ' + sse_type);
  1340. console.log(obj);
  1341. sse_bs_active = false;
  1342. sse_rmids = [];
  1343. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  1344. sse_offset = obj[sse_type].offset;
  1345. sse_handleNotifications(obj, replace, followup);
  1346. })
  1347. .catch(error => {
  1348. console.error('Error:', error);
  1349. sse_bs_active = false;
  1350. });
  1351. } else {
  1352. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  1353. }
  1354. } else {
  1355. sessionStorage.removeItem('notification_open');
  1356. }
  1357. }
  1358.  
  1359. function sse_handleNotifications(obj, replace, followup) {
  1360. // Notice and info notifications
  1361. if (obj.notice) {
  1362. obj.notice.notifications.forEach(notification => {
  1363. toast(notification, 'danger');
  1364. });
  1365. }
  1366.  
  1367. if (obj.info) {
  1368. obj.info.notifications.forEach(notification => {
  1369. toast(notification, 'info');
  1370. });
  1371. }
  1372.  
  1373. if (sse_sys_only) {
  1374. return;
  1375. }
  1376.  
  1377. let primary_notifications = ['dm', 'home', 'intros', 'register', 'notify', 'files'];
  1378. let secondary_notifications = ['network', 'forums', 'all_events', 'pubs'];
  1379. let all_notifications = [...primary_notifications, ...secondary_notifications];
  1380.  
  1381. all_notifications.forEach(type => {
  1382. if (typeof obj[type] === 'undefined') {
  1383. return;
  1384. }
  1385.  
  1386. let count = Number(obj[type].count);
  1387.  
  1388. // Show notifications and update count
  1389. let updateElement = document.querySelector('.' + type + '-update');
  1390. let buttonElement = document.querySelector('.' + type + '-button');
  1391. let subElement = document.getElementById('nav-' + type + '-sub');
  1392.  
  1393. if (count) {
  1394. if (buttonElement) buttonElement.style.display = 'block'; // Fade-in effect replaced by display block
  1395. if (replace || followup) {
  1396. updateElement.textContent = count >= 100 ? '99+' : count;
  1397. } else {
  1398. count = count + Number(updateElement.textContent.replace(/\++$/, ''));
  1399. updateElement.textContent = count >= 100 ? '99+' : count;
  1400. }
  1401. } else {
  1402. if (updateElement) updateElement.textContent = '0';
  1403. if (subElement) subElement.classList.remove('show');
  1404. if (buttonElement) {
  1405. buttonElement.style.display = 'none'; // Fade-out effect replaced by display none
  1406. sse_setNotificationsStatus();
  1407. }
  1408. }
  1409.  
  1410. if (obj[type].notifications.length) {
  1411. sse_handleNotificationsItems(type, obj[type].notifications, replace, followup);
  1412. }
  1413. });
  1414.  
  1415. sse_setNotificationsStatus();
  1416.  
  1417. // Load more notifications if visible notifications count becomes low
  1418. if (sse_type && sse_offset !== -1) {
  1419. let menu = document.getElementById('nav-' + sse_type + '-menu');
  1420. if (menu && menu.children.length < 15) {
  1421. sse_bs_notifications(sse_type, false, true);
  1422. }
  1423. }
  1424. }
  1425.  
  1426. function sse_handleNotificationsItems(notifyType, data, replace, followup) {
  1427.  
  1428. // Get the template, adjust based on the notification type
  1429. let notifications_tpl = (notifyType === 'forums')
  1430. ? decodeURIComponent(document.querySelector("#nav-notifications-forums-template[rel=template]").innerHTML.replace('data-src', 'src'))
  1431. : decodeURIComponent(document.querySelector("#nav-notifications-template[rel=template]").innerHTML.replace('data-src', 'src'));
  1432.  
  1433. let notify_menu = document.getElementById("nav-" + notifyType + "-menu");
  1434. let notify_loading = document.getElementById("nav-" + notifyType + "-loading");
  1435. let notify_count = document.getElementsByClassName(notifyType + "-update");
  1436.  
  1437. if (replace && !followup) {
  1438. notify_menu.innerHTML = ''; // Clear menu
  1439. notify_loading.style.display = 'none'; // Hide loading
  1440. }
  1441.  
  1442. data.forEach(notification => {
  1443. // Special handling for network notifications
  1444. if (!replace && !followup && notification.thread_top && notifyType === 'network') {
  1445. document.dispatchEvent(new CustomEvent('hz:handleNetworkNotificationsItems', { detail: notification }));
  1446. }
  1447.  
  1448. // Prepare HTML using the template
  1449. let html = notifications_tpl.format(
  1450. notification.notify_link,
  1451. notification.photo,
  1452. notification.name,
  1453. notification.addr,
  1454. notification.message,
  1455. notification.when,
  1456. notification.hclass,
  1457. notification.b64mid,
  1458. notification.notify_id,
  1459. notification.thread_top,
  1460. notification.unseen,
  1461. notification.private_forum,
  1462. encodeURIComponent(notification.mids),
  1463. notification.body
  1464. );
  1465.  
  1466. // Append the new notification HTML to the menu
  1467. notify_menu.insertAdjacentHTML('beforeend', html);
  1468. });
  1469.  
  1470. // Sort notifications by date
  1471. if (!replace && !followup) {
  1472. let notifications = Array.from(notify_menu.getElementsByClassName('notification'));
  1473. notifications.sort((a, b) => {
  1474. let dateA = new Date(a.dataset.when);
  1475. let dateB = new Date(b.dataset.when);
  1476. return dateA > dateB ? -1 : dateA < dateB ? 1 : 0;
  1477. });
  1478. notifications.forEach(notification => notify_menu.appendChild(notification));
  1479. }
  1480.  
  1481. // Filter thread_top notifications if the filter is active
  1482. let filterThreadTop = document.getElementById('tt-' + notifyType + '-only');
  1483. if (filterThreadTop && filterThreadTop.classList.contains('active')) {
  1484. let notifications = notify_menu.querySelectorAll('[data-thread_top="false"]');
  1485. notifications.forEach(notification => notification.classList.add('tt-filter-active'));
  1486. }
  1487.  
  1488. // Filter notifications based on the input field
  1489. let filterInput = document.getElementById('cn-' + notifyType + '-input');
  1490. if (filterInput) {
  1491. let filter = filterInput.value.toString().toLowerCase();
  1492. if (filter) {
  1493. if (filter.indexOf('%') === 0) filter = filter.substring(1); // Remove the percent if it exists
  1494. let notifications = notify_menu.querySelectorAll('.notification');
  1495. notifications.forEach(notification => {
  1496. let cn = notification.dataset.contact_name.toString().toLowerCase();
  1497. let ca = notification.dataset.contact_addr.toString().toLowerCase();
  1498. if (cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1) {
  1499. notification.classList.add('cn-filter-active');
  1500. } else {
  1501. notification.classList.remove('cn-filter-active');
  1502. }
  1503. });
  1504. }
  1505. }
  1506.  
  1507. // Update relative time for notifications
  1508. updateRelativeTime('.autotime-narrow');
  1509. }
  1510.  
  1511.  
  1512. function sse_updateNotifications(type, mid) {
  1513.  
  1514. // Skip processing if the type is 'notify' and the conditions don't match
  1515. if (type === 'notify' && (mid !== bParam_mid || sse_type !== 'notify')) {
  1516. return true;
  1517. }
  1518.  
  1519. // Find the notification element based on its 'data-b64mid' attribute
  1520. let notification = document.querySelector(`#nav-${type}-menu .notification[data-b64mid='${mid}']`);
  1521.  
  1522. if (notification) {
  1523. notification.remove();
  1524. }
  1525. }
  1526.  
  1527.  
  1528. function sse_setNotificationsStatus(data) {
  1529. let primary_notifications = ['dm', 'home', 'intros', 'register', 'notify', 'files'];
  1530. let secondary_notifications = ['network', 'forums', 'all_events', 'pubs'];
  1531. let all_notifications = primary_notifications.concat(secondary_notifications);
  1532.  
  1533. let primary_available = false;
  1534. let any_available = false;
  1535.  
  1536. // Loop through all notifications and check their visibility
  1537. all_notifications.forEach(function (type) {
  1538. let button = document.querySelector(`.${type}-button`);
  1539. if (button && getComputedStyle(button).display === 'block') {
  1540. any_available = true;
  1541. if (primary_notifications.indexOf(type) > -1) {
  1542. primary_available = true;
  1543. }
  1544. }
  1545. });
  1546.  
  1547. // Update notification button icon based on the primary notification availability
  1548. let notificationIcon = document.querySelector('.notifications-btn-icon');
  1549. if (primary_available) {
  1550. notificationIcon.classList.remove('bi-exclamation-circle');
  1551. notificationIcon.classList.add('bi-exclamation-triangle');
  1552. } else {
  1553. notificationIcon.classList.remove('bi-exclamation-triangle');
  1554. notificationIcon.classList.add('bi-exclamation-circle');
  1555. }
  1556.  
  1557. // Update visibility of notification button and sections
  1558. let notificationsBtn = document.querySelector('.notifications-btn');
  1559. let noNotifications = document.querySelector('#no_notifications');
  1560. let notifications = document.querySelector('#notifications');
  1561. let navbarCollapse = document.querySelector('#navbar-collapse-1');
  1562.  
  1563. if (any_available) {
  1564. notificationsBtn.style.opacity = 1;
  1565. noNotifications.style.display = 'none';
  1566. notifications.style.display = 'block';
  1567. } else {
  1568. notificationsBtn.style.opacity = 0.5;
  1569. if (navbarCollapse) navbarCollapse.classList.remove('show');
  1570. noNotifications.style.display = 'block';
  1571. notifications.style.display = 'none';
  1572. }
  1573.  
  1574. // Handle specific notifications if 'data' is provided
  1575. if (typeof data !== 'undefined') {
  1576. data.forEach(function (nmid) {
  1577. sse_rmids.push(nmid);
  1578.  
  1579. // Handle regular notifications
  1580. let notification = document.querySelector(`.notification[data-b64mid='${nmid}']`);
  1581. if (notification) {
  1582. let parentId = notification.parentElement.id.split('-')[1];
  1583. sse_updateNotifications(parentId, nmid);
  1584. }
  1585.  
  1586. // Special handling for forum notifications
  1587. let forumNotifications = document.querySelectorAll('.notification-forum');
  1588. forumNotifications.forEach(function (forumNotification) {
  1589. let fmids = decodeURIComponent(forumNotification.dataset.b64mids);
  1590. let parentId = forumNotification.parentElement.id.split('-')[1];
  1591.  
  1592. if (fmids.indexOf(nmid) > -1) {
  1593. let updateElem = document.querySelector(`.${parentId}-update`);
  1594. let fcount = Number(updateElem.innerText);
  1595. fcount--;
  1596. updateElem.innerText = fcount;
  1597.  
  1598. if (fcount < 1) {
  1599. let button = document.querySelector(`.${parentId}-button`);
  1600. button.style.display = 'none';
  1601. let subMenu = document.querySelector(`#nav-${parentId}-sub`);
  1602. if (subMenu) subMenu.classList.remove('show');
  1603. }
  1604.  
  1605. let countElem = forumNotification.querySelector('.bg-secondary');
  1606. let count = Number(countElem.innerText);
  1607. count--;
  1608. countElem.innerText = count;
  1609.  
  1610. if (count < 1) {
  1611. forumNotification.remove();
  1612. }
  1613. }
  1614. });
  1615. });
  1616. }
  1617. }
  1618.  
  1619. function sse_fallback() {
  1620. fetch('/sse')
  1621. .then(response => response.json())
  1622. .then(obj => {
  1623. if (!obj) return;
  1624.  
  1625. console.log('sse fallback');
  1626. console.log(obj);
  1627.  
  1628. sse_handleNotifications(obj, false, false);
  1629. })
  1630. .catch(error => {
  1631. console.error('Error fetching SSE data:', error);
  1632. });
  1633. }
  1634.  
  1635. </script>
  1636.  
  1637. <div id="notifications_wrapper" class="mb-0">
  1638. <div id="no_notifications" class="d-block d-none">
  1639. Sorry, you have got no notifications at the moment<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  1640. </div>
  1641. <div id="nav-notifications-template" rel="template" class="d-none">
  1642. <a class="list-group-item list-group-item-action notification {6}" href="{0}" title="{13}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-when="{5}">
  1643. <img data-src="{1}" loading="lazy" class="rounded float-start me-2 menu-img-2">
  1644. <div class="text-nowrap">
  1645. <div class="d-flex justify-content-between align-items-center lh-sm">
  1646. <div class="text-truncate pe-1">
  1647. <strong title="{2} - {3}">{2}</strong>
  1648. </div>
  1649. <small class="autotime-narrow opacity-75" title="{5}"></small>
  1650. </div>
  1651. <div class="text-truncate">{4}</div>
  1652. </div>
  1653. </a>
  1654. </div>
  1655. <div id="nav-notifications-forums-template" rel="template" class="d-none">
  1656. <a class="list-group-item list-group-item-action justify-content-between align-items-center d-flex notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-b64mids='{12}'>
  1657. <div>
  1658. <img class="menu-img-1" data-src="{1}" loading="lazy">
  1659. <span>{2}</span>
  1660. </div>
  1661. <span class="badge bg-secondary">{10}</span>
  1662. </a>
  1663. </div>
  1664. <div id="notifications" class="border border-top-0 rounded navbar-nav collapse">
  1665. <div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse pubs-button">
  1666. <a id="notification-link-pubs" class="collapsed list-group-item justify-content-between align-items-center d-flex fakelink stretched-link notification-link" href="#" title="New public stream notifications" data-bs-target="#nav-pubs-sub" data-bs-toggle="collapse" data-sse_type="pubs">
  1667. <div>
  1668. <i class="bi bi-globe generic-icons-nav"></i>
  1669. Public Stream
  1670. </div>
  1671. <span class="badge bg-secondary pubs-update"></span>
  1672. </a>
  1673. </div>
  1674. <div id="nav-pubs-sub" class="rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse notification-content" data-bs-parent="#notifications" data-sse_type="pubs">
  1675. <a class="list-group-item list-group-item-action text-decoration-none" id="nav-pubs-see-all" href="pubstream">
  1676. <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> Public stream
  1677. </a>
  1678. <div class="list-group-item list-group-item-action cursor-pointer" id="tt-pubs-only">
  1679. <i class="bi bi-funnel generic-icons-nav"></i> Show new posts only
  1680. </div>
  1681. <div class="list-group-item clearfix notifications-textinput" id="cn-pubs-only">
  1682. <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
  1683. <input id="cn-pubs-input" type="text" class="notification-filter form-control form-control-sm" placeholder="Filter by name or address">
  1684. <div id="cn-pubs-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
  1685. </div>
  1686. <div id="nav-pubs-menu" class="list-group list-group-flush"></div>
  1687. <div id="nav-pubs-loading" class="list-group-item" style="display: none;">
  1688. Loading<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  1689. </div>
  1690. </div>
  1691. </div>
  1692. </div>
  1693.  
  1694.  
  1695.  
  1696.  
  1697. </div>
  1698. </div>
  1699. <div id="region_3" class="pe-0">
  1700. <div id="right_aside_wrapper">
  1701.  
  1702. <div class="card mb-3">
  1703. <!--<h3 class="card-header">Card header</h3>-->
  1704. <img class="d-block user-select-none" width="100%" style="font-size:1.125rem;text-anchor:middle"
  1705. src="https://hub.hubzilla.hu/photo/fa3f4813-e4dc-4837-a7a6-4b86b220e970-9"></img>
  1706. <div class="card-body">
  1707. <div class="d-flex">
  1708. <div id="profile-photo-wrapper" class="bg-body-secondary overflow-hidden me-2"
  1709. style="min-width: 5rem; min-height: 5rem;">
  1710. <img class="img-thumbnail" src="https://hub.hubzilla.hu/photo/profile/m/5?rev=2024-04-01+16%3A34%3A27"
  1711. alt="Der Pepe (Hubzilla) ⁂ ⚝" style="width: 5rem; height: 5rem;">
  1712. </div>
  1713. <div class="vstack d-flex flex-column justify-content-start mt-auto mb-auto">
  1714. <div class="card-title">Der Pepe (Hubzilla) ⁂ ⚝<i class="bi bi-wifi-off text-danger ps-2"
  1715. title=""></i> </div>
  1716. <div class="card-subtitle text-muted">pepecyb&#x40;hub.hubzilla.hu</div>
  1717. </div>
  1718. </div>
  1719. </div>
  1720.  
  1721. <div class="card-body pt-0">
  1722. <p class="card-text">E-Dampfer, Blogger, Ungarn-Auswanderer, Fediverse-Unterstützer, Hunde- und Pferderetter… Vaper, Blogger, Emigrant to Hungary, Fediverse Supporter, Dog and Horse Saviour...</p>
  1723. </div>
  1724.  
  1725. <ul class="list-group list-group-flush">
  1726. <li class="list-group-item">
  1727. <dt class="location-label">Location:</dt>
  1728. <dd class="adr h-adr">
  1729. <div class="city-state-zip">
  1730. <span class="postal-code p-postal-code"></span>
  1731. <span class="locality p-locality">Nagybaracska</span>
  1732. </div>
  1733. <div class="region p-region">Bács-Kiskun</div>
  1734. <div class="country-name p-country-name">Magyarország</div>
  1735. </dd>
  1736. </li>
  1737. <li class="list-group-item">
  1738.  
  1739. <dt class="gender-label">Gender:</dt>
  1740. <dd class="p-gender">Männlich</dd>
  1741. </li>
  1742. <li class="list-group-item">
  1743.  
  1744. <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Status:</dt>
  1745. <dd class="marital-text ps-2">Verheiratet</dd>
  1746. </li>
  1747. <li class="list-group-item">
  1748. <dt class="card-link"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Homepage:</dt>
  1749. <dd class="ps-2">
  1750. <a href="https://pepecyb.hu" rel="me nofollow" >https://pepecyb.hu</a>
  1751. </dd>
  1752. </li>
  1753. </ul>
  1754. </div>
  1755.  
  1756.  
  1757. <div class="card mb-3">
  1758. <div class="card-header">
  1759. Connections
  1760. <div class="card-tools">
  1761. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  1762. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  1763. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  1764. </button>
  1765. <button type="button" class="btn btn-tool" data-lte-toggle="card-remove">
  1766. <i class="bi bi-x-lg"></i>
  1767. </button>
  1768. </div>
  1769. </div>
  1770. <!-- /.card-header -->
  1771. <div class="card-body p-0">
  1772. <div class="row text-center m-1">
  1773. <div class="col-3 p-2">
  1774. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/37250b05-6428-4934-b360-d316b0d23d70-6" alt="" title="blingbling [[email protected]]">
  1775. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ffederation.network%2Fusers%2F9h2uyorck5">
  1776. blingbling [[email protected]]
  1777. </a>
  1778. <div class="fs-8">
  1779. </div>
  1780. </div>
  1781.  
  1782. <div class="col-3 p-2">
  1783. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7e05d060-1934-4521-b7be-ddd72c206175-6" alt="" title="loops [[email protected]]">
  1784. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fpixelfed.social%2Fusers%2Floops">
  1785. </a>
  1786. <div class="fs-8">
  1787. </div>
  1788. </div>
  1789.  
  1790. <div class="col-3 p-2">
  1791. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [[email protected]]">
  1792. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=O6I6jrgvtdr0r37EfdS2uuE2NBqR4p956CXR7qXC07AAZQYvtM86R0E_zWwrdNXEmvNuB_FoFfdHXGYHVHeZdw">
  1793. Papa Dragon [[email protected]]
  1794. </a>
  1795. <div class="fs-8">
  1796. </div>
  1797. </div>
  1798.  
  1799. <div class="col-3 p-2">
  1800. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [[email protected]]">
  1801. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=NXpXobjZUMfnPpq07U_VNexjSKPvg12F3bVON8n2j7qxxCE8QFQjDQ1A62BduWdduVxUReOCQymPPrBe7LyzQg">
  1802. Tiger_micha [[email protected]]
  1803. </a>
  1804. <div class="fs-8">
  1805. </div>
  1806. </div>
  1807.  
  1808. <div class="col-3 p-2">
  1809. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [[email protected]]">
  1810. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fwizard.casa%2Fusers%2Fmumm">
  1811. Samuel Mumm [[email protected]]
  1812. </a>
  1813. <div class="fs-8">
  1814. </div>
  1815. </div>
  1816.  
  1817. <div class="col-3 p-2">
  1818. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [[email protected]]">
  1819. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fprocial.tchncs.de%2Fusers%2F9lupyn1xezx48juq">
  1820. grischa [[email protected]]
  1821. </a>
  1822. <div class="fs-8">
  1823. </div>
  1824. </div>
  1825.  
  1826. <div class="col-3 p-2">
  1827. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [[email protected]]">
  1828. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=uPYQqUfy_VDwqfwEqnOLsYQ3yvQXbhooYwb7u4nXv1OyAQbMM9GMbazH1_BzJFcPSoVhG1mcj2RhUINNZQcizg">
  1829. Steffen [[email protected]]
  1830. </a>
  1831. <div class="fs-8">
  1832. </div>
  1833. </div>
  1834.  
  1835. <div class="col-3 p-2">
  1836. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [[email protected]]">
  1837. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ot2FFn8A4eOYnsR4FJo-vYGGqpm3NB4eH4bteNBG6nxKYx1P8uOTT9GEn-8KgXK_CAuR28MP5HU53Tqtc45Sfg">
  1838. Ulrich (Hubzilla) [[email protected]]
  1839. </a>
  1840. <div class="fs-8">
  1841. </div>
  1842. </div>
  1843.  
  1844. <div class="col-3 p-2">
  1845. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [[email protected]]">
  1846. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.agenedia.com%2Fusers%2Fs_hentzschel">
  1847. Sören Hentzschel 🦊 [[email protected]]
  1848. </a>
  1849. <div class="fs-8">
  1850. </div>
  1851. </div>
  1852.  
  1853. <div class="col-3 p-2">
  1854. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [[email protected]]">
  1855. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ftroet.cafe%2Fusers%2FAsterix_Archiv">
  1856. Asterix Archiv - Comedix.de 💎 [[email protected]]
  1857. </a>
  1858. <div class="fs-8">
  1859. </div>
  1860. </div>
  1861.  
  1862. <div class="col-3 p-2">
  1863. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [[email protected]]">
  1864. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Finfosec.exchange%2Fusers%2FEm0nM4stodon">
  1865. Em :official_verified: [[email protected]]
  1866. </a>
  1867. <div class="fs-8">
  1868. </div>
  1869. </div>
  1870.  
  1871. <div class="col-3 p-2">
  1872. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [[email protected]]">
  1873. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=yPbeiIvTGLmrrMKmMBEP2kcQ-SQvVXK02By_aBSOXbIlmnvKMAU3ji-RsfYuAqn4zAWYgQPr0YvFwVV8FQVgGQ">
  1874. </a>
  1875. <div class="fs-8">
  1876. </div>
  1877. </div>
  1878.  
  1879. <div class="col-3 p-2">
  1880. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [[email protected]]">
  1881. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2Fholarse">
  1882. Holarse - Spielen unter Linux [[email protected]]
  1883. </a>
  1884. <div class="fs-8">
  1885. </div>
  1886. </div>
  1887.  
  1888. <div class="col-3 p-2">
  1889. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [[email protected]]">
  1890. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=lsC6csa2ywg6LwUqIEKFlRqQ9icH_1yQ9ZzvVujXIKNOgVJ-NRMG05-jhEWg9_JsLdBf9TxzZ2yAqnd26RGsgg">
  1891. 𝓒𝓱𝓻𝓲𝓼 [[email protected]]
  1892. </a>
  1893. <div class="fs-8">
  1894. </div>
  1895. </div>
  1896.  
  1897. <div class="col-3 p-2">
  1898. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [[email protected]]">
  1899. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.bund.de%2Fusers%2FUmweltbundesamt">
  1900. Umweltbundesamt [[email protected]]
  1901. </a>
  1902. <div class="fs-8">
  1903. </div>
  1904. </div>
  1905.  
  1906. <div class="col-3 p-2">
  1907. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [[email protected]]">
  1908. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=AkEFH6xk6670ZiBFJ3Q2UIV_MSVnwUZc7_HgmDV8vdFujPf6D3CL-kOZ49CpaEFJT8_CI4oxkqgjslcwnA1zKA">
  1909. Hubzilla Users Support [[email protected]]
  1910. </a>
  1911. <div class="fs-8">
  1912. </div>
  1913. </div>
  1914.  
  1915. <div class="col-3 p-2">
  1916. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [[email protected]]">
  1917. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=HVZ50N0aybIfXSCM09Gnn8gN49-Hz2SPS3HOtqbNbdODH-V-BNhmdJM2v0QH56Zt1E98ZHQY3_jd5ID_aMTv1Q">
  1918. elmussol [[email protected]]
  1919. </a>
  1920. <div class="fs-8">
  1921. </div>
  1922. </div>
  1923.  
  1924. <div class="col-3 p-2">
  1925. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [[email protected]]">
  1926. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=zTgMRO7W4dTOPTumqaSYsPOIArDJ01ItgFPAG46B3gL-KieX63JEHvIapK6ibacjhGzqAaotTsnfymXayWIDzA">
  1927. </a>
  1928. <div class="fs-8">
  1929. </div>
  1930. </div>
  1931.  
  1932. <div class="col-3 p-2">
  1933. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [[email protected]]">
  1934. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=kFLk8T_j3wb9R6-MYLMF-49CjvBnh2LADtbX6r0Yob9MN3I5OzmwdIGAt99cQTmtRLFBWgUkzPc5tcI5fLSE1A">
  1935. Witcraft (Hubzilla) [[email protected]]
  1936. </a>
  1937. <div class="fs-8">
  1938. </div>
  1939. </div>
  1940.  
  1941. <div class="col-3 p-2">
  1942. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [[email protected]]">
  1943. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=Sv04KIQ2ykX1pj5eFt3YtQwzYHv5wKc-yDgDRNI057BCWgJx4N9T__8qqf3XRxwX1ObRzkLlulsItOCedma3OA">
  1944. Hubzilla Statistics [[email protected]]
  1945. </a>
  1946. <div class="fs-8">
  1947. </div>
  1948. </div>
  1949.  
  1950. <div class="col-3 p-2">
  1951. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [[email protected]]">
  1952. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Flegal.social%2Fusers%2Fopenjur">
  1953. openJur [[email protected]]
  1954. </a>
  1955. <div class="fs-8">
  1956. </div>
  1957. </div>
  1958.  
  1959. <div class="col-3 p-2">
  1960. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [[email protected]]">
  1961. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ficeshrimp.de%2Fusers%2Fa1jiwi9elo1d4ozz">
  1962. Samuel Mumm [[email protected]]
  1963. </a>
  1964. <div class="fs-8">
  1965. </div>
  1966. </div>
  1967.  
  1968. <div class="col-3 p-2">
  1969. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [[email protected]]">
  1970. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=oy20JjL8zP9bfvsOuYHhiu7WgIosbDYslpSAbCq0QnUEOXxXDaMDxcub7zai0W2GkuEuCQwiInmjvSChAmmMVg">
  1971. NorVegan [[email protected]]
  1972. </a>
  1973. <div class="fs-8">
  1974. </div>
  1975. </div>
  1976.  
  1977. <div class="col-3 p-2">
  1978. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [[email protected]]">
  1979. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=qCvZC92AvgH6B3y225uO5PwQsYEZWPFR8grRaD4ad8pCpxUyuD3LOJgAN7TgZzy3BcArp0aFlttem1pAwyhYKA">
  1980. *_jayrope [[email protected]]
  1981. </a>
  1982. <div class="fs-8">
  1983. </div>
  1984. </div>
  1985.  
  1986. <div class="col-3 p-2">
  1987. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [[email protected]]">
  1988. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmuenster.im%2Fusers%2Ftylers">
  1989. Wild auf Anfrage [[email protected]]
  1990. </a>
  1991. <div class="fs-8">
  1992. </div>
  1993. </div>
  1994.  
  1995. <div class="col-3 p-2">
  1996. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [[email protected]]">
  1997. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fanonsys.net%2Fprofile%2Ftux">
  1998. Tuxi ⁂ [[email protected]]
  1999. </a>
  2000. <div class="fs-8">
  2001. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  2002. </div>
  2003. </div>
  2004.  
  2005. <div class="col-3 p-2">
  2006. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [[email protected]]">
  2007. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.fedcast.ch%2Fusers%2FHiker">
  2008. </a>
  2009. <div class="fs-8">
  2010. </div>
  2011. </div>
  2012.  
  2013. <div class="col-3 p-2">
  2014. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [[email protected]]">
  2015. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2FNitrumRider">
  2016. NitrumRider [[email protected]]
  2017. </a>
  2018. <div class="fs-8">
  2019. </div>
  2020. </div>
  2021.  
  2022. <div class="col-3 p-2">
  2023. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [[email protected]]">
  2024. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw">
  2025. Stefan Haydn [[email protected]]
  2026. </a>
  2027. <div class="fs-8">
  2028. </div>
  2029. </div>
  2030.  
  2031. <div class="col-3 p-2">
  2032. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [[email protected]]">
  2033. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmetalhead.club%2Fusers%2Fjaecds">
  2034. </a>
  2035. <div class="fs-8">
  2036. </div>
  2037. </div>
  2038.  
  2039. <div class="col-3 p-2">
  2040. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [[email protected]]">
  2041. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.heise.de%2Fusers%2Fheiseonline_TopNews">
  2042. heise online Top News [[email protected]]
  2043. </a>
  2044. <div class="fs-8">
  2045. </div>
  2046. </div>
  2047.  
  2048. <div class="col-3 p-2">
  2049. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [[email protected]]">
  2050. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=-Jl9KXiXojRXwLhVC8gGOJi0ewV00WjLU9i-C7dJGPcHmUzfpEOzTF6Ks0p28JRKpgURH-8p_lqxwr15T5Uthw">
  2051. M. Dent [[email protected]]
  2052. </a>
  2053. <div class="fs-8">
  2054. </div>
  2055. </div>
  2056.  
  2057. <div class="col-3 p-2">
  2058. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [[email protected]]">
  2059. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.wikimedia.de%2Fusers%2FwikimediaDE">
  2060. wikimediaDE [[email protected]]
  2061. </a>
  2062. <div class="fs-8">
  2063. </div>
  2064. </div>
  2065.  
  2066. <div class="col-3 p-2">
  2067. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [[email protected]]">
  2068. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Floma.ml%2Fprofile%2Fsammumm">
  2069. Samuel Mumm [[email protected]]
  2070. </a>
  2071. <div class="fs-8">
  2072. </div>
  2073. </div>
  2074.  
  2075. <div class="col-3 p-2">
  2076. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [[email protected]]">
  2077. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmoppels.bar%2Fusers%2F98xzvtxs95">
  2078. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [[email protected]]
  2079. </a>
  2080. <div class="fs-8">
  2081. </div>
  2082. </div>
  2083.  
  2084. <div class="col-3 p-2">
  2085. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [[email protected]]">
  2086. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=goqXyPxSrxHTZQMzve05xd0CYgyw3ct-fDJf9Rl0PbU-zxUs8JZY6vXgNQi9nuE-Skf5W78BlAmd30czD6z9Ig">
  2087. zotlabs.org | Hubzilla Development [[email protected]]
  2088. </a>
  2089. <div class="fs-8">
  2090. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  2091. </div>
  2092. </div>
  2093.  
  2094. </div>
  2095. <!-- /.users-list -->
  2096. </div>
  2097. <!-- /.card-body -->
  2098. <div class="card-footer text-center">
  2099. <a href="viewconnections/pepecyb"
  2100. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  2101. </div>
  2102. <!-- /.card-footer -->
  2103. </div>
  2104.  
  2105.  
  2106. <div id="pmenu-2" class="pmenu card mb-3">
  2107. <div class="card-body">
  2108. <ul
  2109. class="pmenu-body nav nav-pills flex-column">
  2110. <li id="pmenu-item-3" class="nav-item pmenu-item">
  2111. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  2112. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  2113. </li>
  2114. <li id="pmenu-item-9" class="nav-item pmenu-item">
  2115. <a href="https://hzhelp.pepecyb.hu/"
  2116. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  2117. </li>
  2118. </ul>
  2119. <div class="pmenu-end"></div>
  2120. </div>
  2121. </div>
  2122.  
  2123.  
  2124. <script>
  2125.  
  2126. function toggle_posted_date_button() {
  2127. if($('#posted-date-dropdown').is(':visible')) {
  2128. $('#posted-date-icon').removeClass('bi-chevron-up');
  2129. $('#posted-date-icon').addClass('bi-chevron-down');
  2130. $('#posted-date-dropdown').hide();
  2131. }
  2132. else {
  2133. $('#posted-date-icon').addClass('bi-chevron-up');
  2134. $('#posted-date-icon').removeClass('bi-chevron-down');
  2135. $('#posted-date-dropdown').show();
  2136. }
  2137. }
  2138. </script>
  2139.  
  2140.  
  2141. <div id="datebrowse-sidebar" class="card mb-3">
  2142. <div class="card-header">
  2143. Archives
  2144. </div>
  2145. <div class="card-body">
  2146. <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
  2147. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  2148. <li class="nav-item" id="posted-date-selector-year-2025">
  2149. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2025'); return false;">2025</a>
  2150. </li>
  2151. <div id="posted-date-selector-2025" style="display: none;">
  2152. <ul class="posted-date-selector-months nav nav-pills flex-column">
  2153. <li class="nav-item">
  2154. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31'); return false;">March</a>
  2155. </li>
  2156. <li class="nav-item">
  2157. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28'); return false;">February</a>
  2158. </li>
  2159. <li class="nav-item">
  2160. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31'); return false;">January</a>
  2161. </li>
  2162. </ul>
  2163. </div>
  2164. <li class="nav-item" id="posted-date-selector-year-2024">
  2165. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2024'); return false;">2024</a>
  2166. </li>
  2167. <div id="posted-date-selector-2024" style="display: none;">
  2168. <ul class="posted-date-selector-months nav nav-pills flex-column">
  2169. <li class="nav-item">
  2170. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31'); return false;">December</a>
  2171. </li>
  2172. <li class="nav-item">
  2173. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30'); return false;">November</a>
  2174. </li>
  2175. <li class="nav-item">
  2176. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31'); return false;">October</a>
  2177. </li>
  2178. <li class="nav-item">
  2179. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30'); return false;">September</a>
  2180. </li>
  2181. <li class="nav-item">
  2182. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31'); return false;">August</a>
  2183. </li>
  2184. <li class="nav-item">
  2185. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31'); return false;">July</a>
  2186. </li>
  2187. <li class="nav-item">
  2188. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30'); return false;">June</a>
  2189. </li>
  2190. <li class="nav-item">
  2191. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31'); return false;">May</a>
  2192. </li>
  2193. <li class="nav-item">
  2194. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30'); return false;">April</a>
  2195. </li>
  2196. <li class="nav-item">
  2197. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31'); return false;">March</a>
  2198. </li>
  2199. </ul>
  2200. </div>
  2201. </ul>
  2202. </div>
  2203. </div>
  2204.  
  2205. <div id="categories-sidebar" class="card mb-3">
  2206. <div class="card-header">
  2207. Categories
  2208. </div>
  2209. <div class="card-body">
  2210. <div id="categories-sidebar-desc"></div>
  2211.  
  2212. <ul class="nav nav-pills flex-column">
  2213. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  2214. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  2215. class="nav-link">Dampfdruck-Presse</a></li>
  2216. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  2217. class="nav-link">Dampfen</a></li>
  2218. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  2219. class="nav-link">Dokumentation</a></li>
  2220. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  2221. class="nav-link">Fediverse</a></li>
  2222. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  2223. class="nav-link">Firefish</a></li>
  2224. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  2225. class="nav-link">Friendica</a></li>
  2226. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  2227. class="nav-link">Gastbeitrag</a></li>
  2228. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  2229. class="nav-link">go</a></li>
  2230. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  2231. class="nav-link">golang</a></li>
  2232. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  2233. class="nav-link">Hilfe</a></li>
  2234. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  2235. class="nav-link">Hubzilla</a></li>
  2236. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  2237. class="nav-link">Hubzilla-Häppchen</a></li>
  2238. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  2239. class="nav-link">Hubzilla-Hilfe</a></li>
  2240. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  2241. class="nav-link">Hubzillahäppchen</a></li>
  2242. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  2243. class="nav-link">Kommentar</a></li>
  2244. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  2245. class="nav-link">Pepes Microblog</a></li>
  2246. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  2247. class="nav-link">Pfrunzlers Weekly</a></li>
  2248. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  2249. class="nav-link">Politik</a></li>
  2250. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  2251. class="nav-link">Support</a></li>
  2252. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  2253. class="nav-link">WHO</a></li>
  2254. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  2255. class="nav-link">Wochenblick</a></li>
  2256. </ul>
  2257. </div>
  2258. </div>
  2259.  
  2260. <div class="tagblock widget"><h3>Tags</h3><div class="tags" align="center"><span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediMeta" class="tag2">CWFediMeta</a>
  2261. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  2262. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  2263. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  2264. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  2265. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  2266. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  2267. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  2268. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  2269. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  2270. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  2271. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  2272. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  2273. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  2274. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  2275. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  2276. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  2277. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  2278. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  2279. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  2280. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  2281. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  2282. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  2283. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  2284. </div></div>
  2285.  
  2286. </div>
  2287. </div>
  2288. </div>
  2289. </div>
  2290. </div>
  2291. </div>
  2292. </div>
  2293. </main>
  2294. <!-- /.content-wrapper -->
  2295.  
  2296. </div>
  2297. <!-- ./wrapper -->
  2298. <script>
  2299. // Color Mode Toggler
  2300. (() => {
  2301. "use strict";
  2302.  
  2303. const storedTheme = localStorage.getItem("theme");
  2304.  
  2305. const getPreferredTheme = () => {
  2306. if (storedTheme) {
  2307. return storedTheme;
  2308. }
  2309.  
  2310. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  2311. "dark" :
  2312. "light";
  2313. };
  2314.  
  2315. const setTheme = function(theme) {
  2316. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  2317. document.documentElement.setAttribute("data-bs-theme", "dark");
  2318. } else {
  2319. document.documentElement.setAttribute("data-bs-theme", theme);
  2320. }
  2321. };
  2322.  
  2323. const showActiveTheme = (theme, focus = false) => {
  2324. const themeSwitcher = document.querySelector("#bd-theme");
  2325.  
  2326. if (!themeSwitcher) {
  2327. return;
  2328. }
  2329.  
  2330. const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  2331. const inputToCheck = document.querySelector(`#bd-theme input[data-bs-theme-value="${theme}"]`);
  2332.  
  2333. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  2334. element.classList.remove("active");
  2335. element.setAttribute("aria-pressed", "false");
  2336. }
  2337.  
  2338. btnToActive.classList.add("active");
  2339. btnToActive.setAttribute("aria-pressed", "true");
  2340.  
  2341. // Update the checked state of the radio button
  2342. if (inputToCheck) {
  2343. inputToCheck.checked = true;
  2344. }
  2345.  
  2346. if (focus) {
  2347. btnToActive.focus();
  2348. }
  2349. };
  2350.  
  2351. setTheme(getPreferredTheme());
  2352.  
  2353. window
  2354. .matchMedia("(prefers-color-scheme: dark)")
  2355. .addEventListener("change", () => {
  2356. if (storedTheme !== "light" || storedTheme !== "dark") {
  2357. setTheme(getPreferredTheme());
  2358. }
  2359. });
  2360.  
  2361. window.addEventListener("DOMContentLoaded", () => {
  2362. showActiveTheme(getPreferredTheme());
  2363.  
  2364. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  2365. toggle.addEventListener("click", () => {
  2366. const theme = toggle.getAttribute("data-bs-theme-value");
  2367. localStorage.setItem("theme", theme);
  2368. setTheme(theme);
  2369. showActiveTheme(theme, true);
  2370. });
  2371. }
  2372. });
  2373. })();
  2374. </script>
  2375. <script>
  2376. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  2377. const Default = {
  2378. scrollbarTheme: "os-theme-light",
  2379. scrollbarAutoHide: "leave",
  2380. scrollbarClickScroll: true,
  2381. };
  2382. document.addEventListener("DOMContentLoaded", function() {
  2383. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  2384. if (
  2385. sidebarWrapper &&
  2386. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  2387. ) {
  2388. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  2389. scrollbars: {
  2390. theme: Default.scrollbarTheme,
  2391. autoHide: Default.scrollbarAutoHide,
  2392. clickScroll: Default.scrollbarClickScroll,
  2393. },
  2394. });
  2395. }
  2396. });
  2397. </script> <!--end::OverlayScrollbars Configure-->
  2398. </body>
  2399.  
  2400. </html>
  2401.  
  2402.  
  2403. verify returns: Array
  2404. (
  2405. [signer] =>
  2406. [portable_id] =>
  2407. [header_signed] =>
  2408. [header_valid] =>
  2409. [content_signed] =>
  2410. [content_valid] =>
  2411. )
  2412.  
  2413. <!DOCTYPE html>
  2414. <html lang="en">
  2415.  
  2416. <head>
  2417. <meta charset="utf-8">
  2418. <meta name="viewport" content="width=device-width, initial-scale=1">
  2419. <title> - Der Pepe (Hubzilla) ⁂ ⚝ - [email protected]</title>
  2420. <script>
  2421. var baseurl = "https://hub.hubzilla.hu";
  2422. </script>
  2423. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  2424. <base href="https://hub.hubzilla.hu/" />
  2425. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0" />
  2426.  
  2427. <meta name="application-name" content="hubzilla" />
  2428. <meta name="generator" content="hubzilla" />
  2429. <meta name="theme-color" content="" />
  2430.  
  2431. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/hilite/Text_Highlighter/sample.css?v=10.0.8" type="text/css" media="screen">
  2432. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/b2tbtn/view/css/b2tbtn.css?v=10.0.8" type="text/css" media="screen">
  2433. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/lib/photoswipe5/dist/photoswipe.css?v=10.0.8" type="text/css" media="screen">
  2434. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/view/css/gallery.css?v=10.0.8" type="text/css" media="screen">
  2435. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/jRange/jquery.range.css?v=10.0.8" type="text/css" media="screen">
  2436. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/conversation.css?v=10.0.8" type="text/css" media="screen">
  2437. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/widgets.css?v=10.0.8" type="text/css" media="screen">
  2438. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/colorbox.css?v=10.0.8" type="text/css" media="screen">
  2439. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/justifiedGallery/justifiedGallery.min.css?v=10.0.8" type="text/css" media="screen">
  2440. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.css?v=10.0.8" type="text/css" media="screen">
  2441. <link rel="stylesheet" href="https://hub.hubzilla.hu/vendor/twbs/bootstrap-icons/font/bootstrap-icons.min.css?v=10.0.8" type="text/css" media="screen">
  2442. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.css?v=10.0.8" type="text/css" media="screen">
  2443. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css?v=10.0.8" type="text/css" media="screen">
  2444. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/adminlte.css?v=10.0.8" type="text/css" media="screen">
  2445. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/bootstrap.min.css?v=10.0.8" type="text/css" media="screen">
  2446. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/overlayscrollbar.min.css?v=10.0.8" type="text/css" media="screen">
  2447. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/default.css?v=10.0.8" type="text/css" media="screen">
  2448. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/php/style.css?puid=5&updt=1725916434&v=10.0.8" type="text/css" media="screen">
  2449.  
  2450. <script>
  2451.  
  2452. var aStr = {
  2453.  
  2454.  
  2455. 'delitem' : "Delete this item?",
  2456.  
  2457. 'itemdel' : "Item deleted",
  2458.  
  2459. 'comment' : "Comment",
  2460.  
  2461. 'showmore' : "show all",
  2462.  
  2463. 'showfewer' : "show less",
  2464.  
  2465. 'divgrowmore' : "expand",
  2466.  
  2467. 'divgrowless' : "collapse",
  2468.  
  2469. 'pwshort' : "Password too short",
  2470.  
  2471. 'pwnomatch' : "Passwords do not match",
  2472.  
  2473. 'everybody' : "everybody",
  2474.  
  2475. 'passphrase' : "Secret Passphrase",
  2476.  
  2477. 'passhint' : "Passphrase hint",
  2478.  
  2479. 'permschange' : "Notice: Permissions have changed but have not yet been submitted.",
  2480.  
  2481. 'closeAll' : "close all",
  2482.  
  2483. 'nothingnew' : "Nothing new here",
  2484.  
  2485. 'rating_desc' : "Rate This Channel (this is public)",
  2486.  
  2487. 'rating_val' : "Rating",
  2488.  
  2489. 'rating_text' : "Describe (optional)",
  2490.  
  2491. 'submit' : "Submit",
  2492.  
  2493. 'linkurl' : "Please enter a link URL",
  2494.  
  2495. 'leavethispage' : "Unsaved changes. Are you sure you wish to leave this page?",
  2496.  
  2497. 'location' : "Location",
  2498.  
  2499. 'lovely' : "lovely",
  2500.  
  2501. 'wonderful' : "wonderful",
  2502.  
  2503. 'fantastic' : "fantastic",
  2504.  
  2505. 'great' : "great",
  2506.  
  2507. 'nick_invld1' : "Your chosen nickname was either already taken or not valid. Please use our suggestion (",
  2508.  
  2509. 'nick_invld2' : ") or enter a new one.",
  2510.  
  2511. 'nick_valid' : "Thank you, this nickname is valid.",
  2512.  
  2513. 'name_empty' : "A channel name is required.",
  2514.  
  2515. 'name_ok1' : "This is a ",
  2516.  
  2517. 'name_ok2' : " channel name",
  2518.  
  2519. 'to_reply' : "Back to reply",
  2520.  
  2521. 'pinned' : "Pinned",
  2522.  
  2523. 'pin_item' : "Pin to the top",
  2524.  
  2525. 'unpin_item' : "Unpin from the top",
  2526.  
  2527.  
  2528. 'monthNames' : [
  2529. "January",
  2530. "February",
  2531. "March",
  2532. "April",
  2533. "May",
  2534. "June",
  2535. "July",
  2536. "August",
  2537. "September",
  2538. "October",
  2539. "November",
  2540. "December"
  2541. ],
  2542.  
  2543. 'monthNamesShort' : [
  2544. "Jan",
  2545. "Feb",
  2546. "Mar",
  2547. "Apr",
  2548. "May",
  2549. "Jun",
  2550. "Jul",
  2551. "Aug",
  2552. "Sep",
  2553. "Oct",
  2554. "Nov",
  2555. "Dec"
  2556. ],
  2557.  
  2558. 'dayNames' : [
  2559. "Sunday",
  2560. "Monday",
  2561. "Tuesday",
  2562. "Wednesday",
  2563. "Thursday",
  2564. "Friday",
  2565. "Saturday"
  2566. ],
  2567.  
  2568. 'dayNamesShort' : [
  2569. "Sun",
  2570. "Mon",
  2571. "Tue",
  2572. "Wed",
  2573. "Thu",
  2574. "Fri",
  2575. "Sat"
  2576. ],
  2577.  
  2578. 'today' : "today",
  2579.  
  2580. 'month' : "month",
  2581.  
  2582. 'week' : "week",
  2583.  
  2584. 'day' : "day",
  2585.  
  2586. 'allday' : "All day",
  2587.  
  2588.  
  2589. // mod cloud
  2590. 'download_info' : "Please stand by while your download is being prepared.",
  2591.  
  2592.  
  2593. // mod register
  2594. 'email_not_valid' : "Email address not valid",
  2595.  
  2596. 'email_required' : "Required"
  2597.  
  2598.  
  2599. };
  2600.  
  2601. </script>
  2602.  
  2603.  
  2604. <script src="https://hub.hubzilla.hu/view/js/jquery.js?v=10.0.8"></script>
  2605. <script src="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.js?v=10.0.8"></script>
  2606. <script src="https://hub.hubzilla.hu/library/justifiedGallery/jquery.justifiedGallery.min.js?v=10.0.8"></script>
  2607. <script src="https://hub.hubzilla.hu/library/sprintf.js/dist/sprintf.min.js?v=10.0.8"></script>
  2608. <script src="https://hub.hubzilla.hu/library/textcomplete/textcomplete.min.js?v=10.0.8"></script>
  2609. <script src="https://hub.hubzilla.hu/view/js/autocomplete.js?v=10.0.8"></script>
  2610. <script src="https://hub.hubzilla.hu/library/readmore.js/readmore.js?v=10.0.8"></script>
  2611. <script src="https://hub.hubzilla.hu/library/sjcl/sjcl.js?v=10.0.8"></script>
  2612. <script src="https://hub.hubzilla.hu/library/sodium-plus/dist/sodium-plus.min.js?v=10.0.8"></script>
  2613. <script src="https://hub.hubzilla.hu/view/js/acl.js?v=10.0.8"></script>
  2614. <script src="https://hub.hubzilla.hu/view/js/webtoolkit.base64.js?v=10.0.8"></script>
  2615. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  2616. <script src="https://hub.hubzilla.hu/view/js/crypto.js?v=10.0.8"></script>
  2617. <script src="https://hub.hubzilla.hu/library/jRange/jquery.range.js?v=10.0.8"></script>
  2618. <script src="https://hub.hubzilla.hu/library/colorbox/jquery.colorbox-min.js?v=10.0.8"></script>
  2619. <script src="https://hub.hubzilla.hu/library/jquery.AreYouSure/jquery.are-you-sure.js?v=10.0.8"></script>
  2620. <script src="https://hub.hubzilla.hu/library/tableofcontents/jquery.toc.js?v=10.0.8"></script>
  2621. <script src="https://hub.hubzilla.hu/library/Sortable/Sortable.min.js?v=10.0.8"></script>
  2622. <script src="https://hub.hubzilla.hu/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js?v=10.0.8"></script>
  2623. <script src="https://hub.hubzilla.hu/library/bootbox/bootbox.min.js?v=10.0.8"></script>
  2624. <script src="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.js?v=10.0.8"></script>
  2625. <script src="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js?v=10.0.8"></script>
  2626. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/adminlte.min.js?v=10.0.8"></script>
  2627. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/overlayscrollbar.min.js?v=10.0.8"></script>
  2628.  
  2629. <link rel="alternate" type="application/atom+xml" title="Posts and comments" href="https://hub.hubzilla.hu/feed/pepecyb" />
  2630. <link rel="alternate" type="application/atom+xml" title="Only posts" href="https://hub.hubzilla.hu/feed/pepecyb?f=&top=1" />
  2631. <link rel="alternate" type="application/json+oembed" href="https://hub.hubzilla.hu/oep?f=&url=https%3A%2F%2Fhub.hubzilla.hu%2Fchannel%2Fpepecyb%3Fmid%3D4c683a95-be61-4b2a-a7b4-366e37085cb1" title="oembed" />
  2632. <link rel="manifest" href="/manifest.json" />
  2633. <link rel="shortcut icon" href="https://hub.hubzilla.hu/photo/profile/m/5" />
  2634. <link rel="apple-touch-icon" href="/images/app/hz-192.png" />
  2635. <link rel="search" href="https://hub.hubzilla.hu/opensearch" type="application/opensearchdescription+xml" title="Search Whoville (Hubzilla)" />
  2636.  
  2637.  
  2638. <script>
  2639. var lang = 'en';
  2640. var updateInterval = 80000;
  2641. var sse_enabled = 0;
  2642. var localUser = false;
  2643. var zid = null;
  2644. var justifiedGalleryActive = false;
  2645. var channelId = 5; var preloadImages = 0;
  2646. var auto_save_draft = true;
  2647. var module = 'channel';</script>
  2648.  
  2649.  
  2650.  
  2651. <meta name="keywords" content="ungarn,hungary,magyarorsz&aacute;g,vape,linux,gitarre,guitar,selfhost,s04,discworld,scheibenwelt,pratchett,hubzilla,pfrunzel,firefish,fediverse" />
  2652. <meta property="og:title" content="Der Pepe (Hubzilla) ⁂ ⚝">
  2653. <meta property="og:image" content="https://hub.hubzilla.hu/photo/profile/l/5">
  2654. <meta property="og:image:type" content="image/png">
  2655. <meta property="og:description" content="@Der Pepe (Forte) ⁂ ⚝ Test-Posting zur Diagnose">
  2656. <meta property="og:type" content="article">
  2657. <script>
  2658.  
  2659. var bParam_cmd = "https://hub.hubzilla.hu/update/channel";
  2660.  
  2661. var conv_mode = 'channel';
  2662.  
  2663. var page_mode = 'client';
  2664.  
  2665. var bParam_uid = 5;
  2666. var bParam_gid = 0;
  2667. var bParam_cid = 0;
  2668. var bParam_cmin = (-1);
  2669. var bParam_cmax = (-1);
  2670. var bParam_star = 0;
  2671. var bParam_liked = 0;
  2672. var bParam_conv = 0;
  2673. var bParam_spam = 0;
  2674. var bParam_new = 0;
  2675. var bParam_page = 1;
  2676. var bParam_wall = 1;
  2677. var bParam_list = 0;
  2678. var bParam_fh = 0;
  2679. var bParam_dm = 0;
  2680.  
  2681. var bParam_search = "";
  2682. var bParam_xchan = "";
  2683. var bParam_order = "post";
  2684. var bParam_file = "";
  2685. var bParam_cats = "";
  2686. var bParam_tags = "";
  2687. var bParam_dend = "";
  2688. var bParam_dbegin = "";
  2689. var bParam_mid = "4c683a95-be61-4b2a-a7b4-366e37085cb1";
  2690. var bParam_verb = "";
  2691. var bParam_net = "";
  2692. var bParam_pf = "";
  2693. var bParam_unseen = "";
  2694.  
  2695. function buildCmd() {
  2696.  
  2697. let udargs = ((page_load) ? "/load" : "");
  2698. let bCmd = bParam_cmd + udargs;
  2699.  
  2700. if(bParam_uid) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "p=" + bParam_uid;
  2701. if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmin=" + bParam_cmin;
  2702. if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmax=" + bParam_cmax;
  2703. if(bParam_gid != 0) {
  2704. bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "gid=" + bParam_gid;
  2705. } else
  2706. if(bParam_cid != 0) {
  2707. bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cid=" + bParam_cid;
  2708. }
  2709. if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "star=" + bParam_star;
  2710. if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "liked=" + bParam_liked;
  2711. if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "conv=" + bParam_conv;
  2712. if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "spam=" + bParam_spam;
  2713. if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "new=" + bParam_new;
  2714. if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "wall=" + bParam_wall;
  2715. if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "list=" + bParam_list;
  2716. if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "fh=" + bParam_fh;
  2717. if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dm=" + bParam_dm;
  2718. if(bParam_search != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "search=" + bParam_search;
  2719. if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "xchan=" + bParam_xchan;
  2720. if(bParam_order != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "order=" + bParam_order;
  2721. if(bParam_file != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "file=" + bParam_file;
  2722. if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cat=" + bParam_cats;
  2723. if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "tag=" + bParam_tags;
  2724. if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dend=" + bParam_dend;
  2725. if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dbegin=" + bParam_dbegin;
  2726. if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "mid=" + bParam_mid;
  2727. if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "verb=" + bParam_verb;
  2728. if(bParam_net != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "net=" + bParam_net;
  2729. if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "page=" + bParam_page;
  2730. if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "pf=" + bParam_pf;
  2731. if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "unseen=" + bParam_unseen;
  2732. return(bCmd);
  2733.  
  2734. }
  2735.  
  2736. </script>
  2737.  
  2738. <script src="/addon/gallery/view/js/gallery.js" type="module"></script><script>$(document).ready(function() {
  2739. $("#nav-search-text").search_autocomplete('https://hub.hubzilla.hu/acl');
  2740. });</script><script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  2741. </head>
  2742.  
  2743. <body class="layout-fixed sidebar-expand-md sidebar-mini bg-body-tertiary app-loaded sidebar-open">
  2744. <div class="app-wrapper">
  2745.  
  2746. <header><div id="toast-container" class="vstack gap-3 m-3 position-fixed bottom-0 end-0"></div>
  2747. </header>
  2748. <nav class="app-header navbar navbar-expand bg-body border-0 sticky-top"> <!--begin::Container-->
  2749. <div class="container-fluid"> <!--begin::Start Navbar Links-->
  2750. <ul class="navbar-nav">
  2751. <li class="nav-item">
  2752. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"><i class="bi bi-layout-sidebar"></i></a>
  2753. </li>
  2754. </ul>
  2755. <ul class="navbar-nav">
  2756. </ul>
  2757.  
  2758. <!-- Right navbar links -->
  2759. <ul class="navbar-nav ml-auto">
  2760. <!-- App settings icon-->
  2761.  
  2762. <!-- Navbar Search -->
  2763. <li class="nav-item d-none d-md-block">
  2764. <div class="navbar-search-block">
  2765. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  2766. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  2767. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  2768. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  2769. </form>
  2770. </div>
  2771. </li>
  2772. <!-- notificattion button for smaller screens-->
  2773. <li id="notifications-btn" class="nav-item d-md-none">
  2774. <a class="nav-link notifications-btn" id="notifications-btn-icon" href="#"><i class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
  2775. </li>
  2776. <script>
  2777. document.getElementById('notifications-btn').addEventListener('click',
  2778. function (event) {
  2779.  
  2780. event.preventDefault(); // Prevent default link behavior
  2781.  
  2782. });
  2783. </script>
  2784.  
  2785.  
  2786. <!-- user dowpdown menu-->
  2787. <!--end::User Menu Dropdown-->
  2788. <li class="nav-item mt-1 px-1">
  2789. <a class="btn btn-primary btn-sm" href="login" title="Sign in">Login</a>
  2790. </li>
  2791. <li class="nav-item mt-1 px-1">
  2792. <a class="btn btn-success btn-sm" href="register" title="Create an account">Register</a>
  2793. </li>
  2794.  
  2795. <!-- right sidebar button on smaller screen-->
  2796. <li class="nav-item">
  2797. <a class="nav-link d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive"
  2798. aria-controls="offcanvasResponsive"><i class="bi bi-layout-text-sidebar"></i></a>
  2799. </li>
  2800.  
  2801. </ul> <!--end::End Navbar Links-->
  2802. </div> <!--end::Container-->
  2803. </nav>
  2804.  
  2805.  
  2806. <!--begin::Sidebar-->
  2807. <aside class="app-sidebar bg-dark shadow" data-bs-theme="dark">
  2808. <!--begin::Sidebar Brand-->
  2809. <div class="sidebar-brand">
  2810. <!--begin::Brand Link-->
  2811. <a href="/" class="brand-link">
  2812. <!--begin::Brand Image-->
  2813. <!-- <img
  2814. src="./assets/img/AdminLTELogo.png"
  2815. alt="U"
  2816. class="brand-image opacity-75 shadow"
  2817. /> -->
  2818. <!--end::Brand Image-->
  2819. <!--begin::Brand Text-->
  2820. <span class="brand-text fw-light">Whoville</span>
  2821. <!--end::Brand Text-->
  2822. </a>
  2823. <!--end::Brand Link-->
  2824. </div>
  2825. <!--end::Sidebar Brand-->
  2826. <!--begin::Sidebar Wrapper-->
  2827. <div class="sidebar-wrapper">
  2828. <nav class="mt-2">
  2829. <!--begin::Sidebar Menu-->
  2830. <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
  2831. <li class="nav-header pb-3 pt-1">
  2832. <div id="bd-theme" class="btn-group" role="group" aria-label="Basic radio toggle button group">
  2833. <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked
  2834. data-bs-theme-value="auto">
  2835. <label class="btn btn-sm btn-outline-primary" for="btnradio1"><i
  2836. class="bi bi-circle-half me-2"></i>Auto</label>
  2837.  
  2838. <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off"
  2839. data-bs-theme-value="dark">
  2840. <label class="btn btn-sm btn-outline-primary" for="btnradio2"><i
  2841. class="bi bi-moon-fill me-2"></i>Dark</label>
  2842.  
  2843. <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off"
  2844. data-bs-theme-value="light">
  2845. <label class="btn btn-sm btn-outline-primary" for="btnradio3"><i
  2846. class="bi bi-sun-fill me-2"></i>Light</label>
  2847. </div>
  2848. </li>
  2849. <li class="nav-header d-block d-md-none">
  2850. <div class="navbar-search-block">
  2851. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  2852. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  2853. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  2854. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  2855. </form>
  2856. </div>
  2857. </li>
  2858.  
  2859. <!-- Pinned user apps -->
  2860. <!-- Channel apps; needs fixing -->
  2861. <li class="nav-header" aria-disabled="true">Channel Apps</li>
  2862. <li class="nav-item">
  2863. <a class="nav-link active" href="https://hub.hubzilla.hu/channel/pepecyb" title="Status Messages and Posts"><i class="nav-icon bi bi-house"></i> <p>Channel</p> </a>
  2864. </li>
  2865. <li class="nav-item">
  2866. <a class="nav-link" href="https://hub.hubzilla.hu/profile/pepecyb" title="Profile Details"><i class="nav-icon bi bi-person"></i> <p>About</p> </a>
  2867. </li>
  2868. <li class="nav-item">
  2869. <a class="nav-link" href="https://hub.hubzilla.hu/photos/pepecyb" title="Photo Albums"><i class="nav-icon bi bi-image"></i> <p>Photos</p> </a>
  2870. </li>
  2871. <li class="nav-item">
  2872. <a class="nav-link" href="https://hub.hubzilla.hu/cloud/pepecyb" title="Files and Storage"><i class="nav-icon bi bi-folder"></i> <p>Files</p> </a>
  2873. </li>
  2874. <li class="nav-item">
  2875. <a class="nav-link" href="https://hub.hubzilla.hu/cal/pepecyb" title="Calendar"><i class="nav-icon bi bi-calendar-date"></i> <p>Calendar</p> </a>
  2876. </li>
  2877. <li class="nav-item">
  2878. <a class="nav-link" href="https://hub.hubzilla.hu/gallery/pepecyb" title="Photo Gallery"><i class="nav-icon bi bi-image"></i> <p>Gallery</p> </a>
  2879. </li>
  2880. <li class="nav-item">
  2881. <a class="nav-link" href="https://hub.hubzilla.hu/articles/pepecyb" title="View Articles"><i class="nav-icon bi bi-newspaper"></i> <p>Articles</p> </a>
  2882. </li>
  2883. <li class="nav-item">
  2884. <a class="nav-link" href="https://hub.hubzilla.hu/cards/pepecyb" title="View Cards"><i class="nav-icon bi bi-card-text"></i> <p>Cards</p> </a>
  2885. </li>
  2886. <li class="nav-item">
  2887. <a class="nav-link" href="https://hub.hubzilla.hu/wiki/pepecyb" title="View Cards"><i class="nav-icon bi bi-pencil-square"></i> <p>Wikis</p> </a>
  2888. </li>
  2889. <br>
  2890.  
  2891. <li class="nav-header" aria-disabled="true">System Apps</li>
  2892. <!-- System apps -->
  2893. <!-- other apps in main sidebar menu -->
  2894. <li class="nav-item">
  2895. <a href="https://hub.hubzilla.hu/directory" class="nav-link ">
  2896. <i class="nav-icon bi bi-diagram-3"></i> <p>Directory</p>
  2897. </a>
  2898. </li>
  2899.  
  2900. <!-- other apps in main sidebar menu -->
  2901. <li class="nav-item">
  2902. <a href="https://hub.hubzilla.hu/help" class="nav-link ">
  2903. <i class="nav-icon bi bi-question-lg"></i> <p>Help</p>
  2904. </a>
  2905. </li>
  2906.  
  2907. <!-- other apps in main sidebar menu -->
  2908. <li class="nav-item">
  2909. <a href="https://hub.hubzilla.hu/lang" class="nav-link ">
  2910. <i class="nav-icon bi bi-translate"></i> <p>Language</p>
  2911. </a>
  2912. </li>
  2913.  
  2914. <!-- other apps in main sidebar menu -->
  2915. <li class="nav-item">
  2916. <a href="https://hub.hubzilla.hu/likebanner" class="nav-link ">
  2917. <p>Like Us</p>
  2918. </a>
  2919. </li>
  2920.  
  2921. <!-- other apps in main sidebar menu -->
  2922. <li class="nav-item">
  2923. <a href="https://hub.hubzilla.hu/pubstream" class="nav-link ">
  2924. <i class="nav-icon bi bi-globe"></i> <p>Public Stream</p>
  2925. </a>
  2926. </li>
  2927.  
  2928. <!-- other apps in main sidebar menu -->
  2929. <li class="nav-item">
  2930. <a href="https://hub.hubzilla.hu/qrator" class="nav-link ">
  2931. <i class="nav-icon bi bi-qr-code"></i> <p>QRator</p>
  2932. </a>
  2933. </li>
  2934.  
  2935. <!-- other apps in main sidebar menu -->
  2936. <li class="nav-item">
  2937. <a href="https://hub.hubzilla.hu/randprof" class="nav-link ">
  2938. <i class="nav-icon bi bi-shuffle"></i> <p>Random Channel</p>
  2939. </a>
  2940. </li>
  2941.  
  2942. <!-- other apps in main sidebar menu -->
  2943. <li class="nav-item">
  2944. <a href="https://framagit.org/hubzilla/core/issues" class="nav-link ">
  2945. <i class="nav-icon bi bi-bug"></i> <p>Report Bug</p>
  2946. </a>
  2947. </li>
  2948.  
  2949. <!-- other apps in main sidebar menu -->
  2950. <li class="nav-item">
  2951. <a href="https://hub.hubzilla.hu/search" class="nav-link ">
  2952. <i class="nav-icon bi bi-search"></i> <p>Search</p>
  2953. </a>
  2954. </li>
  2955.  
  2956. <!-- other apps in main sidebar menu -->
  2957. <li class="nav-item">
  2958. <a href="https://hub.hubzilla.hu/donate" class="nav-link ">
  2959. <p>Support Hubzilla</p>
  2960. </a>
  2961. </li>
  2962.  
  2963. </ul>
  2964. <!--end::Sidebar Menu-->
  2965. </nav>
  2966. </div>
  2967. <!--end::Sidebar Wrapper-->
  2968. </aside>
  2969. <!--end::Sidebar-->
  2970.  
  2971. <script>
  2972. document.addEventListener('DOMContentLoaded',
  2973. function() {
  2974.  
  2975. // Function to apply the saved sidebar state
  2976. function applySavedState() {
  2977.  
  2978. const isDesktop = window.innerWidth >= 768; // AdminLTE's desktop breakpoint
  2979. const savedState = localStorage.getItem('sidebarCollapsed');
  2980.  
  2981. // Apply state only on desktop
  2982. if (isDesktop && savedState !== null) {
  2983.  
  2984. document.body.classList.toggle('sidebar-collapse',
  2985. savedState === 'true');
  2986.  
  2987. }
  2988.  
  2989. }
  2990.  
  2991. // Apply saved state on initial load
  2992. applySavedState();
  2993.  
  2994. // Re-apply state when window is resized to desktop
  2995. window.addEventListener('resize',
  2996. applySavedState);
  2997.  
  2998. // Watch for sidebar class changes to update localStorage
  2999. const observer = new MutationObserver(function(mutations) {
  3000.  
  3001. mutations.forEach(function(mutation) {
  3002.  
  3003. if (mutation.attributeName === 'class') {
  3004.  
  3005. const isDesktop = window.innerWidth >= 768;
  3006. const isCollapsed = document.body.classList.contains('sidebar-collapse');
  3007.  
  3008. // Save state only for desktop interactions
  3009. if (isDesktop) {
  3010.  
  3011. localStorage.setItem('sidebarCollapsed',
  3012. isCollapsed);
  3013.  
  3014. }
  3015.  
  3016. }
  3017.  
  3018. });
  3019.  
  3020. });
  3021.  
  3022. // Start observing the body element for class changes
  3023. observer.observe(document.body,
  3024. {
  3025. attributes: true
  3026. });
  3027.  
  3028. });
  3029. </script>
  3030.  
  3031. <!-- Content Wrapper. Contains page content -->
  3032. <main class="app-main px-1 py-3" style="min-height: calc(100vh - 56px);">
  3033. <div class="container-xl">
  3034. <div class="row">
  3035. <div id="region_2" class="col-12 col-md-12 col-lg-8">
  3036.  
  3037. <div id="live-channel"></div>
  3038. <script> var profile_uid = 5; var netargs = '?f='; var profile_page = 1; divmore_height = 400;</script>
  3039. <noscript><div id="threads-begin"></div>
  3040. <div id="thread-wrapper-2669850" class="thread-wrapper toplevel_item card generic-content-wrapper h-entry mb-4 clearfix" data-b64mids='[
  3041. "4c683a95-be61-4b2a-a7b4-366e37085cb1",
  3042. "776ca57a-93d2-49cb-b24c-b4bccc45b417"
  3043. ]'>
  3044. <a name="item_2669850" ></a>
  3045. <div class="wall-item-outside-wrapper" id="wall-item-outside-wrapper-2669850" >
  3046. <div class="rounded wall-item-content-wrapper" id="wall-item-content-wrapper-2669850">
  3047. <div class="p-2 wall-item-head wall-item-head-new card-body clearfix">
  3048. <div class="lh-sm text-end float-end">
  3049. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669850">
  3050. <i class="bi bi-geo-alt" title="Nagybaracska"></i>
  3051. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3052. <small class="autotime" title="2025-03-15T14:07:15+01:00"><time class="dt-published" datetime="2025-03-15T14:07:15+01:00">2025-03-15 14:07:15</time></small>
  3053. </div>
  3054. </div>
  3055. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669850" >
  3056. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669850">
  3057. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669850" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  3058. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3059. <div class="dropdown-menu">
  3060. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  3061. </div>
  3062. </div>
  3063. </div>
  3064. <div class="wall-item-author">
  3065. <div class="text-truncate">
  3066. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669850" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  3067. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  3068. </div>
  3069. </div>
  3070. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669850">
  3071. <div class="wall-item-body e-content" id="wall-item-body-2669850">
  3072. @<a href="https://forte.fedi-verse.hu/.well-known/apgateway/did:key:z6MkgFbpi3myEaHerEDnJAYUW9F1gHVCgM8zCD4F2f36bP2U/actor" target="_blank" rel="nofollow noopener" >Der Pepe (Forte) &#8258; &#9885;</a> <br /><br />Test-Posting zur Diagnose
  3073. </div>
  3074. </div>
  3075. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3076. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669850">
  3077. <div class="">
  3078. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2669850">
  3079. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  3080. <div class="dropdown-menu">
  3081. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  3082. </div>
  3083. <div class="">
  3084. <div id="like-rotator-2669850" class="spinner-wrapper">
  3085. <div class="spinner s"></div>
  3086. </div>
  3087. </div>
  3088. </div>
  3089. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669850">
  3090. <div class="">
  3091. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669850">
  3092. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3093. </button>
  3094. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669850">
  3095. <a class="dropdown-item" href="https://hub.hubzilla.hu/item/4c683a95-be61-4b2a-a7b4-366e37085cb1" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  3096. <div class="dropdown-divider"></div>
  3097. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669850" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  3098. </div>
  3099. </div>
  3100. </div>
  3101. </div>
  3102. </div>
  3103. </div>
  3104. <div id="thread-wrapper-2669928" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='[
  3105. "02bc673c-81ab-4384-86fa-493a67dcf7ce"
  3106. ]'>
  3107. <a name="item_2669928" ></a>
  3108. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2669928" >
  3109. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2669928">
  3110. <div class="p-2 wall-item-head card-body clearfix">
  3111. <div class="lh-sm text-end float-end">
  3112. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669928">
  3113. <a href="http://starwars.com" target="_blank" rel="nofollow noopener" >Felucia</a>
  3114. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3115. <small class="autotime" title="2025-03-15T14:18:59+01:00"><time class="dt-published" datetime="2025-03-15T14:18:59+01:00">2025-03-15 14:18:59</time></small>
  3116. </div>
  3117. </div>
  3118. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669928" >
  3119. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669928">
  3120. <img src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669928" alt="Stefan Haydn" loading="lazy" data-bs-toggle="dropdown" />
  3121. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3122. <div class="dropdown-menu">
  3123. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" title="View Profile">View Profile</a>
  3124. </div>
  3125. </div>
  3126. </div>
  3127. <div class="wall-item-author">
  3128. <div class="text-truncate">
  3129. <a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669928" ><bdi>Stefan Haydn</bdi></span></a> </div>
  3130. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  3131. </div>
  3132. </div>
  3133. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669928">
  3134. <div class="wall-item-body e-content" id="wall-item-body-2669928">
  3135. Ist die Installation wie bei streams?
  3136. </div>
  3137. </div>
  3138. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3139. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669928">
  3140. <div class="">
  3141. <div id="like-rotator-2669928" class="spinner-wrapper">
  3142. <div class="spinner s"></div>
  3143. </div>
  3144. </div>
  3145. </div>
  3146. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669928">
  3147. <div class="">
  3148. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669928">
  3149. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3150. </button>
  3151. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669928">
  3152. <a class="dropdown-item" href="https://hub.hayfidelity.de/item/02bc673c-81ab-4384-86fa-493a67dcf7ce" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  3153. <div class="dropdown-divider"></div>
  3154. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669928" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  3155. </div>
  3156. </div>
  3157. </div>
  3158. </div>
  3159. </div>
  3160. </div>
  3161. </div>
  3162. <div id="thread-wrapper-2670071" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='[
  3163. "398738ae-9974-4e8e-8007-225492532b6b",
  3164. "5238508f-6bf4-44cf-84ab-afebd9e8c33f"
  3165. ]'>
  3166. <a name="item_2670071" ></a>
  3167. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2670071" >
  3168. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2670071">
  3169. <div class="p-2 wall-item-head card-body clearfix">
  3170. <div class="lh-sm text-end float-end">
  3171. <div class="wall-item-ago opacity-75" id="wall-item-ago-2670071">
  3172. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3173. <small class="autotime" title="2025-03-15T14:46:06+01:00"><time class="dt-published" datetime="2025-03-15T14:46:06+01:00">2025-03-15 14:46:06</time></small>
  3174. </div>
  3175. </div>
  3176. <div class="float-start wall-item-info pe-2" id="wall-item-info-2670071" >
  3177. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2670071">
  3178. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2670071" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  3179. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3180. <div class="dropdown-menu">
  3181. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  3182. </div>
  3183. </div>
  3184. </div>
  3185. <div class="wall-item-author">
  3186. <div class="text-truncate">
  3187. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2670071" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  3188. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  3189. </div>
  3190. </div>
  3191. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2670071">
  3192. <div class="wall-item-body e-content" id="wall-item-body-2670071">
  3193. Ja,
  3194. im Prinzip kein Unterschied. Läuft auch absolut geschmeidig.
  3195. </div>
  3196. </div>
  3197. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3198. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2670071">
  3199. <div class="">
  3200. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2670071">
  3201. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  3202. <div class="dropdown-menu">
  3203. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  3204. </div>
  3205. <div class="">
  3206. <div id="like-rotator-2670071" class="spinner-wrapper">
  3207. <div class="spinner s"></div>
  3208. </div>
  3209. </div>
  3210. </div>
  3211. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2670071">
  3212. <div class="">
  3213. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2670071">
  3214. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3215. </button>
  3216. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2670071">
  3217. <a class="dropdown-item" href="https://hub.hubzilla.hu/display/398738ae-9974-4e8e-8007-225492532b6b" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  3218. <div class="dropdown-divider"></div>
  3219. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2670071" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  3220. </div>
  3221. </div>
  3222. </div>
  3223. </div>
  3224. </div>
  3225. </div>
  3226. </div>
  3227. </div>
  3228. <div id="threads-end"></div>
  3229. <div id="conversation-end"></div>
  3230. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  3231. <div class="modal-dialog">
  3232. <div class="modal-content">
  3233. <div class="modal-header">
  3234. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  3235. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  3236. </div>
  3237. <div class="modal-body" id="conversation_settings_body">
  3238. Loading...
  3239. </div>
  3240. </div><!-- /.modal-content -->
  3241. </div><!-- /.modal-dialog -->
  3242. </div><!-- /.modal -->
  3243. <div class="pager">
  3244. <a href="https://hub.hubzilla.hu/channel/pepecyb?mid=4c683a95-be61-4b2a-a7b4-366e37085cb1&page=2" class="pager-next">older</a></div>
  3245. </noscript><div id="threads-begin"></div>
  3246. <div id="threads-end"></div>
  3247. <div id="conversation-end"></div>
  3248. <div id="page-spinner" class="spinner-wrapper">
  3249. <div class="spinner m"></div>
  3250. <div id="image_counter" class="text-muted text-center small"></div>
  3251. </div>
  3252. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  3253. <div class="modal-dialog">
  3254. <div class="modal-content">
  3255. <div class="modal-header">
  3256. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  3257. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  3258. </div>
  3259. <div class="modal-body" id="conversation_settings_body">
  3260. Loading...
  3261. </div>
  3262. </div><!-- /.modal-content -->
  3263. </div><!-- /.modal-dialog -->
  3264. </div><!-- /.modal -->
  3265. <div id="edit-modal" class="modal" tabindex="-1">
  3266. <div class="modal-dialog">
  3267. <div class="modal-content">
  3268. <div class="modal-header">
  3269. <div id="edit-modal-title" class="modal-title w-75">
  3270. <div class="placeholder-wave">
  3271. <span class="placeholder placeholder-lg" style="width: 200px;"></span>
  3272. </div>
  3273. </div>
  3274. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  3275. </div>
  3276. <div id="edit-modal-body" class="modal-body">
  3277. <div class="placeholder-wave">
  3278. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3279. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3280. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3281. </div>
  3282. </div>
  3283. <div class="modal-footer">
  3284. <div id="edit-modal-tools" class="me-auto"></div>
  3285. <button id="contact-save" type="button" class="btn btn-primary"></button>
  3286. </div>
  3287. </div>
  3288. </div>
  3289. </div>
  3290. <script>
  3291.  
  3292. let poi;
  3293. let section = 'roles';
  3294. let sub_section;
  3295.  
  3296. $(document).ready(function() {
  3297.  
  3298. if (window.location.hash) {
  3299.  
  3300. poi = window.location.hash.substr(1);
  3301. init_contact_edit(poi);
  3302.  
  3303. }
  3304.  
  3305. window.onhashchange = function() {
  3306.  
  3307. if (window.location.hash) {
  3308.  
  3309. poi = window.location.hash.substr(1);
  3310. init_contact_edit(poi);
  3311.  
  3312. }
  3313.  
  3314. };
  3315.  
  3316. });
  3317.  
  3318. $(document).on('click',
  3319. '.contact-edit',
  3320. function (e) {
  3321.  
  3322. e.preventDefault();
  3323. poi = this.dataset.id
  3324. init_contact_edit(poi);
  3325.  
  3326. });
  3327.  
  3328. $(document).on('click',
  3329. '#contact-save',
  3330. function () {
  3331.  
  3332. let form_data = $('#contact-edit-form').serialize() + '&section=' + section + '&sub_section=' + sub_section;
  3333.  
  3334. $.post('contactedit/' + poi,
  3335. form_data,
  3336. function(data) {
  3337.  
  3338. if (!data.success) {
  3339.  
  3340. toast(data.message,
  3341. 'danger');
  3342. return;
  3343.  
  3344. }
  3345. activate(data);
  3346. toast(data.message,
  3347. ((data.success) ? 'info' : 'danger'));
  3348. // $('#edit-modal').modal('hide');
  3349.  
  3350. });
  3351.  
  3352.  
  3353. });
  3354.  
  3355. $(document).on('click',
  3356. '.contact-tool',
  3357. function (e) {
  3358.  
  3359. e.preventDefault();
  3360. let cmd = this.dataset.cmd;
  3361.  
  3362. $.get('contactedit/' + poi + '/' + cmd,
  3363. function(data) {
  3364.  
  3365. $('#edit-modal-tools').html(data.tools);
  3366. toast(data.message,
  3367. ((data.success) ? 'info' : 'danger'));
  3368. if (cmd === 'drop') {
  3369.  
  3370. if ($('#contact-entry-wrapper-' + poi).length) {
  3371.  
  3372. $('#contact-entry-wrapper-' + poi).fadeOut();
  3373.  
  3374. }
  3375. $('#edit-modal').modal('hide');
  3376.  
  3377. }
  3378.  
  3379. });
  3380.  
  3381. });
  3382.  
  3383. $(document).on('click',
  3384. '.section',
  3385. function () {
  3386.  
  3387. section = this.dataset.section;
  3388. sub_section = '';
  3389.  
  3390. });
  3391.  
  3392. $(document).on('click',
  3393. '.sub_section',
  3394. function () {
  3395.  
  3396. if ($(this).hasClass('sub_section_active')) {
  3397.  
  3398. $(this).removeClass('sub_section_active');
  3399. sub_section = '';
  3400.  
  3401. }
  3402. else {
  3403.  
  3404. $(this).addClass('sub_section_active');
  3405. sub_section = this.dataset.section;
  3406.  
  3407. }
  3408.  
  3409. });
  3410.  
  3411. $('#edit-modal').on('hidden.bs.modal',
  3412. function (e) {
  3413.  
  3414. if (window.location.hash) {
  3415.  
  3416. history.replaceState(null,
  3417. '',
  3418. 'connections');
  3419.  
  3420. }
  3421.  
  3422. });
  3423.  
  3424. function init_contact_edit(poi) {
  3425.  
  3426. if (!poi)
  3427. return;
  3428.  
  3429. $('.contact-edit-rotator-' + poi).addClass('d-inline-block');
  3430. $('.contact-edit-icon-' + poi).hide();
  3431. $.get('contactedit/' + poi,
  3432. function(data) {
  3433.  
  3434. if (!data.success) {
  3435.  
  3436. toast(data.message,
  3437. 'danger');
  3438. return;
  3439.  
  3440. }
  3441. $('#edit-modal').modal('show');
  3442. activate(data);
  3443.  
  3444. });
  3445.  
  3446. }
  3447.  
  3448. function activate(data) {
  3449.  
  3450. $('#contact-save').removeClass('disabled');
  3451. $('#contact-tools').removeClass('disabled');
  3452. $('.contact-edit-rotator-' + poi).removeClass('d-inline-block');
  3453. $('.contact-edit-icon-' + poi).show();
  3454.  
  3455. if (data.title) {
  3456.  
  3457. $('#edit-modal-title').html(data.title);
  3458.  
  3459. }
  3460.  
  3461. if (data.body) {
  3462.  
  3463. $('#edit-modal-body').html(data.body);
  3464.  
  3465. }
  3466.  
  3467. if (data.tools) {
  3468.  
  3469. $('#edit-modal-tools').html(data.tools);
  3470.  
  3471. }
  3472.  
  3473. if (data.submit) {
  3474.  
  3475. $('#contact-save').html(data.submit);
  3476.  
  3477. }
  3478.  
  3479. if (data.role && $('#contact-role-' + poi).length) {
  3480.  
  3481. $('#contact-role-' + poi).html(data.role);
  3482.  
  3483. }
  3484.  
  3485. if (data.pending) {
  3486.  
  3487. $('#contact-save').removeClass('btn-primary');
  3488. $('#contact-save').addClass('btn-success');
  3489.  
  3490. }
  3491. else {
  3492.  
  3493. $('#contact-save').addClass('btn-primary');
  3494. $('#contact-save').removeClass('btn-success');
  3495.  
  3496. }
  3497.  
  3498. }
  3499. </script>
  3500. <div id="content-complete"></div>
  3501. <script>
  3502. $(document).ready(function(){
  3503.  
  3504.  
  3505. // hide #back-top first
  3506. $("#back-top").hide();
  3507.  
  3508. // fade in #back-top
  3509. $(function () {
  3510.  
  3511. $(window).scroll(function () {
  3512.  
  3513. if ($(this).scrollTop() > 100) {
  3514.  
  3515. $('#back-top').fadeIn();
  3516.  
  3517. } else {
  3518.  
  3519. $('#back-top').fadeOut();
  3520.  
  3521. }
  3522.  
  3523. });
  3524.  
  3525. // scroll body to 0px on click
  3526. $('#back-top a').click(function () {
  3527.  
  3528. $('body,
  3529. html').animate({
  3530.  
  3531. scrollTop: 0
  3532.  
  3533. },
  3534. 150);
  3535. return false;
  3536.  
  3537. });
  3538.  
  3539. });
  3540.  
  3541.  
  3542. });
  3543. </script><p id="back-top"><a href="#top"><span></span></a></p>
  3544.  
  3545. </div>
  3546.  
  3547. <div class="d-lg-block col-lg-4 sticky-column pe-0">
  3548. <div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
  3549. <div class="offcanvas-header mt-2">
  3550. <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
  3551. </div>
  3552. <div class="offcanvas-body px-0">
  3553. <div class="container row pe-0">
  3554. <div id="region_1" class="pe-0">
  3555. <div id="left_aside_wrapper">
  3556.  
  3557. <script>
  3558. var sse_bs_active = false;
  3559. var sse_offset = 0;
  3560. var sse_type;
  3561. var sse_partial_result = false;
  3562. var sse_rmids = [
  3563.  
  3564. ];
  3565. var sse_fallback_interval;
  3566. var sse_sys_only = 0;
  3567.  
  3568. document.addEventListener("DOMContentLoaded",
  3569. function() {
  3570.  
  3571. let notificationsWrapper = document.getElementById('notifications_wrapper');
  3572. let notificationsParent = notificationsWrapper ? notificationsWrapper.parentElement.id : null;
  3573. let notificationsBtn = document.querySelector('.notifications-btn');
  3574.  
  3575. // Event listener for notifications button
  3576. if (notificationsBtn) {
  3577.  
  3578. notificationsBtn.addEventListener('click',
  3579. function() {
  3580.  
  3581. // Remove the 'd-none' class to show the notifications wrapper
  3582. notificationsWrapper.classList.remove('d-none');
  3583.  
  3584. // Check if the notifications wrapper has the 'fs' class
  3585. if (notificationsWrapper.classList.contains('fs')) {
  3586.  
  3587. // Prepend the notifications wrapper back to its original parent and hide it
  3588. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  3589. notificationsWrapper.classList.add('d-none');
  3590.  
  3591. } else {
  3592.  
  3593. // Otherwise,
  3594. prepend the notifications wrapper to 'main'
  3595. document.querySelector('main').prepend(notificationsWrapper);
  3596.  
  3597. }
  3598.  
  3599. // Toggle the 'fs' class
  3600. notificationsWrapper.classList.toggle('fs');
  3601.  
  3602. });
  3603.  
  3604. }
  3605.  
  3606. // Event listener for clicking a notification
  3607. document.addEventListener('click',
  3608. function(event) {
  3609.  
  3610. if (event.target.closest('a') && event.target.closest('a').classList.contains('notification')) {
  3611.  
  3612. console.log(1)
  3613. if (notificationsWrapper.classList.contains('fs')) {
  3614.  
  3615. // Move notifications wrapper back to its original parent and hide it
  3616. notificationsWrapper.classList.remove('fs');
  3617. notificationsWrapper.classList.add('d-none');
  3618. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  3619.  
  3620.  
  3621. }
  3622.  
  3623. }
  3624.  
  3625. });
  3626.  
  3627. if(sse_enabled) {
  3628.  
  3629. if(typeof(window.SharedWorker) === 'undefined') {
  3630.  
  3631. // notifications with multiple tabs open will not work very well in this scenario
  3632. let evtSource = new EventSource('/sse');
  3633.  
  3634. evtSource.addEventListener('notifications',
  3635. function(e) {
  3636.  
  3637. let obj = JSON.parse(e.data);
  3638. sse_handleNotifications(obj,
  3639. false,
  3640. false);
  3641.  
  3642. },
  3643. false);
  3644.  
  3645. document.addEventListener('visibilitychange',
  3646. function() {
  3647.  
  3648. if (!document.hidden) {
  3649.  
  3650. sse_offset = 0;
  3651. sse_bs_init();
  3652.  
  3653. }
  3654.  
  3655. },
  3656. false);
  3657.  
  3658.  
  3659. }
  3660. else {
  3661.  
  3662. let myWorker = new SharedWorker('/view/js/sse_worker.js',
  3663. localUser);
  3664.  
  3665. myWorker.port.onmessage = function(e) {
  3666.  
  3667. obj = e.data;
  3668. console.log(obj);
  3669. sse_handleNotifications(obj,
  3670. false,
  3671. false);
  3672.  
  3673. }
  3674.  
  3675. myWorker.onerror = function(e) {
  3676.  
  3677. myWorker.port.close();
  3678.  
  3679. }
  3680.  
  3681. myWorker.port.start();
  3682.  
  3683. }
  3684.  
  3685. }
  3686. else {
  3687.  
  3688. if (!document.hidden) {
  3689.  
  3690. sse_fallback_interval = setInterval(sse_fallback,
  3691. updateInterval);
  3692.  
  3693. }
  3694.  
  3695. document.addEventListener('visibilitychange',
  3696. function() {
  3697.  
  3698. if (document.hidden) {
  3699.  
  3700. clearInterval(sse_fallback_interval);
  3701.  
  3702. }
  3703. else {
  3704.  
  3705. sse_offset = 0;
  3706. sse_bs_init();
  3707. sse_fallback_interval = setInterval(sse_fallback,
  3708. updateInterval);
  3709.  
  3710. }
  3711.  
  3712.  
  3713. },
  3714. false);
  3715.  
  3716. }
  3717.  
  3718. document.querySelectorAll('.notification-link').forEach(function (element) {
  3719.  
  3720. element.addEventListener('click',
  3721. function (element) {
  3722.  
  3723. sse_bs_notifications(element,
  3724. true,
  3725. false);
  3726.  
  3727. });
  3728.  
  3729. });
  3730.  
  3731. document.querySelectorAll('.notification-filter').forEach(function (element) {
  3732.  
  3733. element.addEventListener('keypress',
  3734. function(e) {
  3735.  
  3736. if (e.which == 13) {
  3737. // Enter key
  3738. this.blur();
  3739. sse_offset = 0;
  3740.  
  3741. // Clear the content of the menu
  3742. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  3743.  
  3744. // Show the loading element
  3745. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  3746.  
  3747. // Get the value from the input element
  3748. var cn_val = document.getElementById('cn-' + sse_type + '-input') ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase() : '';
  3749.  
  3750. // Send a GET request using the Fetch API
  3751. fetch('/sse_bs/' + sse_type + '/' + sse_offset + '?nquery=' + encodeURIComponent(cn_val))
  3752. .then(response => response.json())
  3753. .then(obj => {
  3754.  
  3755. console.log('sse: bootstraping ' + sse_type);
  3756. console.log(obj);
  3757.  
  3758. sse_bs_active = false;
  3759. sse_partial_result = true;
  3760. sse_offset = obj[
  3761. sse_type
  3762. ].offset;
  3763. if (sse_offset < 0) {
  3764.  
  3765. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  3766.  
  3767. }
  3768.  
  3769. sse_handleNotifications(obj,
  3770. true,
  3771. false);
  3772.  
  3773. })
  3774. .catch(error => {
  3775.  
  3776. console.error('Error fetching data:',
  3777. error);
  3778.  
  3779. });
  3780.  
  3781. }
  3782.  
  3783. });
  3784.  
  3785. });
  3786.  
  3787. document.querySelectorAll('.notifications-textinput-clear').forEach(function (element) {
  3788.  
  3789. element.addEventListener('click',
  3790. function(e) {
  3791.  
  3792. if (!sse_partial_result) return;
  3793.  
  3794. // Clear the content of the menu
  3795. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  3796.  
  3797. // Show the loading element
  3798. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  3799.  
  3800. // Send a GET request using the Fetch API
  3801. fetch('/sse_bs/' + sse_type)
  3802. .then(response => response.json())
  3803. .then(obj => {
  3804.  
  3805. console.log('sse: bootstraping ' + sse_type);
  3806. console.log(obj);
  3807.  
  3808. sse_bs_active = false;
  3809. sse_partial_result = false;
  3810. sse_offset = obj[
  3811. sse_type
  3812. ].offset;
  3813. if (sse_offset < 0) {
  3814.  
  3815. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  3816.  
  3817. }
  3818.  
  3819. sse_handleNotifications(obj,
  3820. true,
  3821. false);
  3822.  
  3823. })
  3824. .catch(error => {
  3825.  
  3826. console.error('Error fetching data:',
  3827. error);
  3828.  
  3829. });
  3830.  
  3831. });
  3832.  
  3833. });
  3834.  
  3835. document.querySelectorAll('.notification-content').forEach(function(element) {
  3836.  
  3837. element.addEventListener('scroll',
  3838. function() {
  3839.  
  3840. if (this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight / 7)) {
  3841.  
  3842. sse_bs_notifications(sse_type,
  3843. false,
  3844. true);
  3845.  
  3846. }
  3847.  
  3848. });
  3849.  
  3850. });
  3851.  
  3852.  
  3853. document.querySelectorAll('#tt-pubs-only').forEach(function (element) {
  3854.  
  3855. element.addEventListener('click',
  3856. function(e) {
  3857.  
  3858.  
  3859. let element = e.target.closest('div');
  3860. let menu = document.querySelector('#nav-pubs-menu');
  3861. let notifications = menu.querySelectorAll('.notification[
  3862. data-thread_top="false"
  3863. ]');
  3864.  
  3865. // Function to check if an element is visible
  3866. function isVisible(el) {
  3867.  
  3868. return el.offsetWidth > 0 && el.offsetHeight > 0;
  3869.  
  3870. }
  3871.  
  3872. if (element.classList.contains('active') && element.classList.contains('sticky-top')) {
  3873.  
  3874. notifications.forEach(function(notification) {
  3875.  
  3876. notification.classList.remove('tt-filter-active');
  3877.  
  3878. });
  3879. element.classList.remove('active',
  3880. 'sticky-top');
  3881.  
  3882. } else {
  3883.  
  3884. notifications.forEach(function(notification) {
  3885.  
  3886. notification.classList.add('tt-filter-active');
  3887.  
  3888. });
  3889. element.classList.add('active',
  3890. 'sticky-top');
  3891.  
  3892. // Count the visible notifications
  3893. let visibleNotifications = Array.from(menu.querySelectorAll('.notification')).filter(isVisible).length;
  3894.  
  3895. // Load more notifications if the visible count is low
  3896. if (sse_type && sse_offset !== -1 && visibleNotifications < 15) {
  3897.  
  3898. sse_bs_notifications(sse_type,
  3899. false,
  3900. true);
  3901.  
  3902. }
  3903.  
  3904. }
  3905.  
  3906.  
  3907. });
  3908.  
  3909. });
  3910.  
  3911. document.querySelectorAll('#cn-pubs-input-clear').forEach(function (element) {
  3912.  
  3913. element.addEventListener('click',
  3914. function(e) {
  3915.  
  3916. let input = document.getElementById('cn-pubs-input');
  3917. input.value = '';
  3918.  
  3919. // Remove 'active' and 'sticky-top' classes to the 'only' element
  3920. let onlyElement = document.getElementById('cn-pubs-only');
  3921. onlyElement.classList.remove('active',
  3922. 'sticky-top');
  3923.  
  3924. // Add 'd-none' class from the clear button
  3925. let clearButton = document.getElementById('cn-pubs-input-clear');
  3926. clearButton.classList.add('d-none');
  3927.  
  3928. // Remove the 'cn-filter-active' class from all notifications
  3929. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  3930. notifications.forEach(function(notification) {
  3931.  
  3932. notification.classList.remove('cn-filter-active');
  3933.  
  3934. });
  3935.  
  3936. });
  3937.  
  3938. });
  3939.  
  3940. document.querySelectorAll('#cn-pubs-input').forEach(function (element) {
  3941.  
  3942. element.addEventListener('input',
  3943. function(e) {
  3944.  
  3945. let input = e.target;
  3946. let val = input.value.toString().toLowerCase();
  3947.  
  3948. // Check if there is input value
  3949. if (val) {
  3950.  
  3951. // Remove '%' if it's at the beginning of the input value
  3952. val = val.indexOf('%') === 0 ? val.substring(1) : val;
  3953.  
  3954. // Add 'active' and 'sticky-top' classes to the 'only' element
  3955. let onlyElement = document.getElementById('cn-pubs-only');
  3956. onlyElement.classList.add('active',
  3957. 'sticky-top');
  3958.  
  3959. // Remove 'd-none' class from the clear button
  3960. let clearButton = document.getElementById('cn-pubs-input-clear');
  3961. clearButton.classList.remove('d-none');
  3962.  
  3963. } else {
  3964.  
  3965. // Remove 'active' and 'sticky-top' classes from the 'only' element
  3966. let onlyElement = document.getElementById('cn-pubs-only');
  3967. onlyElement.classList.remove('active',
  3968. 'sticky-top');
  3969.  
  3970. // Add 'd-none' class to the clear button
  3971. let clearButton = document.getElementById('cn-pubs-input-clear');
  3972. clearButton.classList.add('d-none');
  3973.  
  3974. }
  3975.  
  3976. // Loop through each notification and apply filter logic
  3977. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  3978. notifications.forEach(function(el) {
  3979.  
  3980. let cn = el.dataset.contact_name.toString().toLowerCase();
  3981. let ca = el.dataset.contact_addr.toString().toLowerCase();
  3982.  
  3983. // Check if the contact name or address matches the input value
  3984. if (cn.indexOf(val) === -1 && ca.indexOf(val) === -1) {
  3985.  
  3986. el.classList.add('cn-filter-active');
  3987.  
  3988. } else {
  3989.  
  3990. el.classList.remove('cn-filter-active');
  3991.  
  3992. }
  3993.  
  3994. });
  3995.  
  3996. });
  3997.  
  3998. });
  3999.  
  4000.  
  4001.  
  4002. });
  4003.  
  4004. document.addEventListener('hz:sse_setNotificationsStatus',
  4005. function(e) {
  4006.  
  4007. sse_setNotificationsStatus(e.detail);
  4008.  
  4009. });
  4010.  
  4011. document.addEventListener('hz:sse_bs_init',
  4012. function() {
  4013.  
  4014. sse_bs_init();
  4015.  
  4016. });
  4017.  
  4018. document.addEventListener('hz:sse_bs_counts',
  4019. function() {
  4020.  
  4021. sse_bs_counts();
  4022.  
  4023. });
  4024.  
  4025.  
  4026. function sse_bs_init() {
  4027.  
  4028. // Check if 'notification_open' exists in sessionStorage or if sse_type is defined
  4029. if (sessionStorage.getItem('notification_open') !== null || typeof sse_type !== 'undefined') {
  4030.  
  4031. if (typeof sse_type === 'undefined') {
  4032.  
  4033. sse_type = sessionStorage.getItem('notification_open');
  4034.  
  4035. }
  4036.  
  4037. // Add the 'show' class to the appropriate element
  4038. let subNav = document.getElementById("nav-" + sse_type + "-sub");
  4039. if (subNav) {
  4040.  
  4041. subNav.classList.add('show');
  4042.  
  4043. }
  4044.  
  4045. // Call the sse_bs_notifications function
  4046. sse_bs_notifications(sse_type,
  4047. true,
  4048. false);
  4049.  
  4050. } else {
  4051.  
  4052. // Call the sse_bs_counts function if conditions are not met
  4053. sse_bs_counts();
  4054.  
  4055. }
  4056.  
  4057. }
  4058.  
  4059. function sse_bs_counts() {
  4060.  
  4061. if (sse_bs_active || sse_sys_only) {
  4062.  
  4063. return;
  4064.  
  4065. }
  4066.  
  4067. sse_bs_active = true;
  4068.  
  4069. // Use the fetch API to send the POST request with the data
  4070. fetch('/sse_bs',
  4071. {
  4072.  
  4073. method: 'POST',
  4074.  
  4075. body: new URLSearchParams({
  4076. sse_rmids: sse_rmids
  4077. })
  4078.  
  4079. })
  4080. .then(response => response.json()) // Parse the JSON response
  4081. .then(obj => {
  4082.  
  4083. console.log(obj);
  4084. sse_bs_active = false;
  4085. sse_rmids = [
  4086.  
  4087. ];
  4088. sse_handleNotifications(obj,
  4089. true,
  4090. false);
  4091.  
  4092. })
  4093. .catch(error => {
  4094.  
  4095. console.error('Error:',
  4096. error);
  4097. sse_bs_active = false;
  4098.  
  4099. });
  4100.  
  4101. }
  4102.  
  4103. function sse_bs_notifications(e,
  4104. replace,
  4105. followup) {
  4106.  
  4107. if (sse_bs_active || sse_sys_only) {
  4108.  
  4109. return;
  4110.  
  4111. }
  4112.  
  4113. let manual = false;
  4114.  
  4115. if (typeof replace === 'undefined') {
  4116.  
  4117. replace = e.data.replace;
  4118.  
  4119. }
  4120.  
  4121. if (typeof followup === 'undefined') {
  4122.  
  4123. followup = e.data.followup;
  4124.  
  4125. }
  4126.  
  4127. if (typeof e === 'string') {
  4128.  
  4129. sse_type = e;
  4130.  
  4131. } else {
  4132.  
  4133. manual = true;
  4134. sse_offset = 0;
  4135. sse_type = e.target.dataset.sse_type;
  4136.  
  4137. }
  4138.  
  4139. if (typeof sse_type === 'undefined') {
  4140.  
  4141. return;
  4142.  
  4143. }
  4144.  
  4145. if (followup || !manual || !document.getElementById('notification-link-' + sse_type).classList.contains('collapsed')) {
  4146.  
  4147.  
  4148. if (sse_offset >= 0) {
  4149.  
  4150. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  4151.  
  4152. }
  4153.  
  4154. sessionStorage.setItem('notification_open',
  4155. sse_type);
  4156.  
  4157. if (sse_offset !== -1 || replace) {
  4158.  
  4159. let cn_val = (document.getElementById('cn-' + sse_type + '-input') && sse_partial_result)
  4160. ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase()
  4161. : '';
  4162.  
  4163. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  4164.  
  4165. sse_bs_active = true;
  4166.  
  4167. // Send POST request using fetch API
  4168. fetch('/sse_bs/' + sse_type + '/' + sse_offset,
  4169. {
  4170.  
  4171. method: 'POST',
  4172.  
  4173. body: new URLSearchParams({
  4174.  
  4175. sse_rmids: sse_rmids,
  4176.  
  4177. nquery: encodeURIComponent(cn_val)
  4178.  
  4179. })
  4180.  
  4181. })
  4182. .then(response => response.json()) // Parse the JSON response
  4183. .then(obj => {
  4184.  
  4185. console.log('sse: bootstraping ' + sse_type);
  4186. console.log(obj);
  4187. sse_bs_active = false;
  4188. sse_rmids = [
  4189.  
  4190. ];
  4191. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  4192. sse_offset = obj[
  4193. sse_type
  4194. ].offset;
  4195. sse_handleNotifications(obj,
  4196. replace,
  4197. followup);
  4198.  
  4199. })
  4200. .catch(error => {
  4201.  
  4202. console.error('Error:',
  4203. error);
  4204. sse_bs_active = false;
  4205.  
  4206. });
  4207.  
  4208. } else {
  4209.  
  4210. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  4211.  
  4212. }
  4213.  
  4214. } else {
  4215.  
  4216. sessionStorage.removeItem('notification_open');
  4217.  
  4218. }
  4219.  
  4220. }
  4221.  
  4222. function sse_handleNotifications(obj,
  4223. replace,
  4224. followup) {
  4225.  
  4226. // Notice and info notifications
  4227. if (obj.notice) {
  4228.  
  4229. obj.notice.notifications.forEach(notification => {
  4230.  
  4231. toast(notification,
  4232. 'danger');
  4233.  
  4234. });
  4235.  
  4236. }
  4237.  
  4238. if (obj.info) {
  4239.  
  4240. obj.info.notifications.forEach(notification => {
  4241.  
  4242. toast(notification,
  4243. 'info');
  4244.  
  4245. });
  4246.  
  4247. }
  4248.  
  4249. if (sse_sys_only) {
  4250.  
  4251. return;
  4252.  
  4253. }
  4254.  
  4255. let primary_notifications = [
  4256. 'dm',
  4257. 'home',
  4258. 'intros',
  4259. 'register',
  4260. 'notify',
  4261. 'files'
  4262. ];
  4263. let secondary_notifications = [
  4264. 'network',
  4265. 'forums',
  4266. 'all_events',
  4267. 'pubs'
  4268. ];
  4269. let all_notifications = [
  4270. ...primary_notifications,
  4271. ...secondary_notifications
  4272. ];
  4273.  
  4274. all_notifications.forEach(type => {
  4275.  
  4276. if (typeof obj[
  4277. type
  4278. ] === 'undefined') {
  4279.  
  4280. return;
  4281.  
  4282. }
  4283.  
  4284. let count = Number(obj[
  4285. type
  4286. ].count);
  4287.  
  4288. // Show notifications and update count
  4289. let updateElement = document.querySelector('.' + type + '-update');
  4290. let buttonElement = document.querySelector('.' + type + '-button');
  4291. let subElement = document.getElementById('nav-' + type + '-sub');
  4292.  
  4293. if (count) {
  4294.  
  4295. if (buttonElement) buttonElement.style.display = 'block'; // Fade-in effect replaced by display block
  4296. if (replace || followup) {
  4297.  
  4298. updateElement.textContent = count >= 100 ? '99+' : count;
  4299.  
  4300. } else {
  4301.  
  4302. count = count + Number(updateElement.textContent.replace(/++$/,
  4303. ''));
  4304. updateElement.textContent = count >= 100 ? '99+' : count;
  4305.  
  4306. }
  4307.  
  4308. } else {
  4309.  
  4310. if (updateElement) updateElement.textContent = '0';
  4311. if (subElement) subElement.classList.remove('show');
  4312. if (buttonElement) {
  4313.  
  4314. buttonElement.style.display = 'none'; // Fade-out effect replaced by display none
  4315. sse_setNotificationsStatus();
  4316.  
  4317. }
  4318.  
  4319. }
  4320.  
  4321. if (obj[
  4322. type
  4323. ].notifications.length) {
  4324.  
  4325. sse_handleNotificationsItems(type,
  4326. obj[
  4327. type
  4328. ].notifications,
  4329. replace,
  4330. followup);
  4331.  
  4332. }
  4333.  
  4334. });
  4335.  
  4336. sse_setNotificationsStatus();
  4337.  
  4338. // Load more notifications if visible notifications count becomes low
  4339. if (sse_type && sse_offset !== -1) {
  4340.  
  4341. let menu = document.getElementById('nav-' + sse_type + '-menu');
  4342. if (menu && menu.children.length < 15) {
  4343.  
  4344. sse_bs_notifications(sse_type,
  4345. false,
  4346. true);
  4347.  
  4348. }
  4349.  
  4350. }
  4351.  
  4352. }
  4353.  
  4354. function sse_handleNotificationsItems(notifyType,
  4355. data,
  4356. replace,
  4357. followup) {
  4358.  
  4359.  
  4360. // Get the template,
  4361. adjust based on the notification type
  4362. let notifications_tpl = (notifyType === 'forums')
  4363. ? decodeURIComponent(document.querySelector("#nav-notifications-forums-template[rel=template]").innerHTML.replace('data-src',
  4364. 'src'))
  4365. : decodeURIComponent(document.querySelector("#nav-notifications-template[rel=template]").innerHTML.replace('data-src',
  4366. 'src'));
  4367.  
  4368. let notify_menu = document.getElementById("nav-" + notifyType + "-menu");
  4369. let notify_loading = document.getElementById("nav-" + notifyType + "-loading");
  4370. let notify_count = document.getElementsByClassName(notifyType + "-update");
  4371.  
  4372. if (replace && !followup) {
  4373.  
  4374. notify_menu.innerHTML = ''; // Clear menu
  4375. notify_loading.style.display = 'none'; // Hide loading
  4376.  
  4377. }
  4378.  
  4379. data.forEach(notification => {
  4380.  
  4381. // Special handling for network notifications
  4382. if (!replace && !followup && notification.thread_top && notifyType === 'network') {
  4383.  
  4384. document.dispatchEvent(new CustomEvent('hz:handleNetworkNotificationsItems',
  4385. {
  4386. detail: notification
  4387. }));
  4388.  
  4389. }
  4390.  
  4391. // Prepare HTML using the template
  4392. let html = notifications_tpl.format(
  4393. notification.notify_link,
  4394.  
  4395. notification.photo,
  4396.  
  4397. notification.name,
  4398.  
  4399. notification.addr,
  4400.  
  4401. notification.message,
  4402.  
  4403. notification.when,
  4404.  
  4405. notification.hclass,
  4406.  
  4407. notification.b64mid,
  4408.  
  4409. notification.notify_id,
  4410.  
  4411. notification.thread_top,
  4412.  
  4413. notification.unseen,
  4414.  
  4415. notification.private_forum,
  4416.  
  4417. encodeURIComponent(notification.mids),
  4418.  
  4419. notification.body
  4420. );
  4421.  
  4422. // Append the new notification HTML to the menu
  4423. notify_menu.insertAdjacentHTML('beforeend',
  4424. html);
  4425.  
  4426. });
  4427.  
  4428. // Sort notifications by date
  4429. if (!replace && !followup) {
  4430.  
  4431. let notifications = Array.from(notify_menu.getElementsByClassName('notification'));
  4432. notifications.sort((a,
  4433. b) => {
  4434.  
  4435. let dateA = new Date(a.dataset.when);
  4436. let dateB = new Date(b.dataset.when);
  4437. return dateA > dateB ? -1 : dateA < dateB ? 1 : 0;
  4438.  
  4439. });
  4440. notifications.forEach(notification => notify_menu.appendChild(notification));
  4441.  
  4442. }
  4443.  
  4444. // Filter thread_top notifications if the filter is active
  4445. let filterThreadTop = document.getElementById('tt-' + notifyType + '-only');
  4446. if (filterThreadTop && filterThreadTop.classList.contains('active')) {
  4447.  
  4448. let notifications = notify_menu.querySelectorAll('[
  4449. data-thread_top="false"
  4450. ]');
  4451. notifications.forEach(notification => notification.classList.add('tt-filter-active'));
  4452.  
  4453. }
  4454.  
  4455. // Filter notifications based on the input field
  4456. let filterInput = document.getElementById('cn-' + notifyType + '-input');
  4457. if (filterInput) {
  4458.  
  4459. let filter = filterInput.value.toString().toLowerCase();
  4460. if (filter) {
  4461.  
  4462. if (filter.indexOf('%') === 0) filter = filter.substring(1); // Remove the percent if it exists
  4463. let notifications = notify_menu.querySelectorAll('.notification');
  4464. notifications.forEach(notification => {
  4465.  
  4466. let cn = notification.dataset.contact_name.toString().toLowerCase();
  4467. let ca = notification.dataset.contact_addr.toString().toLowerCase();
  4468. if (cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1) {
  4469.  
  4470. notification.classList.add('cn-filter-active');
  4471.  
  4472. } else {
  4473.  
  4474. notification.classList.remove('cn-filter-active');
  4475.  
  4476. }
  4477.  
  4478. });
  4479.  
  4480. }
  4481.  
  4482. }
  4483.  
  4484. // Update relative time for notifications
  4485. updateRelativeTime('.autotime-narrow');
  4486.  
  4487. }
  4488.  
  4489.  
  4490. function sse_updateNotifications(type,
  4491. mid) {
  4492.  
  4493.  
  4494. // Skip processing if the type is 'notify' and the conditions don't match
  4495. if (type === 'notify' && (mid !== bParam_mid || sse_type !== 'notify')) {
  4496.  
  4497. return true;
  4498.  
  4499. }
  4500.  
  4501. // Find the notification element based on its 'data-b64mid' attribute
  4502. let notification = document.querySelector(`#nav-${
  4503. type
  4504. }-menu .notification[
  4505. data-b64mid='${
  4506. mid
  4507. }'
  4508. ]`);
  4509.  
  4510. if (notification) {
  4511.  
  4512. notification.remove();
  4513.  
  4514. }
  4515.  
  4516. }
  4517.  
  4518.  
  4519. function sse_setNotificationsStatus(data) {
  4520.  
  4521. let primary_notifications = [
  4522. 'dm',
  4523. 'home',
  4524. 'intros',
  4525. 'register',
  4526. 'notify',
  4527. 'files'
  4528. ];
  4529. let secondary_notifications = [
  4530. 'network',
  4531. 'forums',
  4532. 'all_events',
  4533. 'pubs'
  4534. ];
  4535. let all_notifications = primary_notifications.concat(secondary_notifications);
  4536.  
  4537. let primary_available = false;
  4538. let any_available = false;
  4539.  
  4540. // Loop through all notifications and check their visibility
  4541. all_notifications.forEach(function (type) {
  4542.  
  4543. let button = document.querySelector(`.${
  4544. type
  4545. }-button`);
  4546. if (button && getComputedStyle(button).display === 'block') {
  4547.  
  4548. any_available = true;
  4549. if (primary_notifications.indexOf(type) > -1) {
  4550.  
  4551. primary_available = true;
  4552.  
  4553. }
  4554.  
  4555. }
  4556.  
  4557. });
  4558.  
  4559. // Update notification button icon based on the primary notification availability
  4560. let notificationIcon = document.querySelector('.notifications-btn-icon');
  4561. if (primary_available) {
  4562.  
  4563. notificationIcon.classList.remove('bi-exclamation-circle');
  4564. notificationIcon.classList.add('bi-exclamation-triangle');
  4565.  
  4566. } else {
  4567.  
  4568. notificationIcon.classList.remove('bi-exclamation-triangle');
  4569. notificationIcon.classList.add('bi-exclamation-circle');
  4570.  
  4571. }
  4572.  
  4573. // Update visibility of notification button and sections
  4574. let notificationsBtn = document.querySelector('.notifications-btn');
  4575. let noNotifications = document.querySelector('#no_notifications');
  4576. let notifications = document.querySelector('#notifications');
  4577. let navbarCollapse = document.querySelector('#navbar-collapse-1');
  4578.  
  4579. if (any_available) {
  4580.  
  4581. notificationsBtn.style.opacity = 1;
  4582. noNotifications.style.display = 'none';
  4583. notifications.style.display = 'block';
  4584.  
  4585. } else {
  4586.  
  4587. notificationsBtn.style.opacity = 0.5;
  4588. if (navbarCollapse) navbarCollapse.classList.remove('show');
  4589. noNotifications.style.display = 'block';
  4590. notifications.style.display = 'none';
  4591.  
  4592. }
  4593.  
  4594. // Handle specific notifications if 'data' is provided
  4595. if (typeof data !== 'undefined') {
  4596.  
  4597. data.forEach(function (nmid) {
  4598.  
  4599. sse_rmids.push(nmid);
  4600.  
  4601. // Handle regular notifications
  4602. let notification = document.querySelector(`.notification[
  4603. data-b64mid='${
  4604. nmid
  4605. }'
  4606. ]`);
  4607. if (notification) {
  4608.  
  4609. let parentId = notification.parentElement.id.split('-')[
  4610. 1
  4611. ];
  4612. sse_updateNotifications(parentId,
  4613. nmid);
  4614.  
  4615. }
  4616.  
  4617. // Special handling for forum notifications
  4618. let forumNotifications = document.querySelectorAll('.notification-forum');
  4619. forumNotifications.forEach(function (forumNotification) {
  4620.  
  4621. let fmids = decodeURIComponent(forumNotification.dataset.b64mids);
  4622. let parentId = forumNotification.parentElement.id.split('-')[
  4623. 1
  4624. ];
  4625.  
  4626. if (fmids.indexOf(nmid) > -1) {
  4627.  
  4628. let updateElem = document.querySelector(`.${
  4629. parentId
  4630. }-update`);
  4631. let fcount = Number(updateElem.innerText);
  4632. fcount--;
  4633. updateElem.innerText = fcount;
  4634.  
  4635. if (fcount < 1) {
  4636.  
  4637. let button = document.querySelector(`.${
  4638. parentId
  4639. }-button`);
  4640. button.style.display = 'none';
  4641. let subMenu = document.querySelector(`#nav-${
  4642. parentId
  4643. }-sub`);
  4644. if (subMenu) subMenu.classList.remove('show');
  4645.  
  4646. }
  4647.  
  4648. let countElem = forumNotification.querySelector('.bg-secondary');
  4649. let count = Number(countElem.innerText);
  4650. count--;
  4651. countElem.innerText = count;
  4652.  
  4653. if (count < 1) {
  4654.  
  4655. forumNotification.remove();
  4656.  
  4657. }
  4658.  
  4659. }
  4660.  
  4661. });
  4662.  
  4663. });
  4664.  
  4665. }
  4666.  
  4667. }
  4668.  
  4669. function sse_fallback() {
  4670.  
  4671. fetch('/sse')
  4672. .then(response => response.json())
  4673. .then(obj => {
  4674.  
  4675. if (!obj) return;
  4676.  
  4677. console.log('sse fallback');
  4678. console.log(obj);
  4679.  
  4680. sse_handleNotifications(obj,
  4681. false,
  4682. false);
  4683.  
  4684. })
  4685. .catch(error => {
  4686.  
  4687. console.error('Error fetching SSE data:',
  4688. error);
  4689.  
  4690. });
  4691.  
  4692. }
  4693.  
  4694. </script>
  4695.  
  4696. <div id="notifications_wrapper" class="mb-0">
  4697. <div id="no_notifications" class="d-block d-none">
  4698. Sorry,
  4699. you have got no notifications at the moment<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  4700. </div>
  4701. <div id="nav-notifications-template" rel="template" class="d-none">
  4702. <a class="list-group-item list-group-item-action notification {6}" href="{0}" title="{13}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-when="{5}">
  4703. <img data-src="{1}" loading="lazy" class="rounded float-start me-2 menu-img-2">
  4704. <div class="text-nowrap">
  4705. <div class="d-flex justify-content-between align-items-center lh-sm">
  4706. <div class="text-truncate pe-1">
  4707. <strong title="{2} - {3}">{
  4708. 2
  4709. }</strong>
  4710. </div>
  4711. <small class="autotime-narrow opacity-75" title="{5}"></small>
  4712. </div>
  4713. <div class="text-truncate">{
  4714. 4
  4715. }</div>
  4716. </div>
  4717. </a>
  4718. </div>
  4719. <div id="nav-notifications-forums-template" rel="template" class="d-none">
  4720. <a class="list-group-item list-group-item-action justify-content-between align-items-center d-flex notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-b64mids='{
  4721. 12
  4722. }'>
  4723. <div>
  4724. <img class="menu-img-1" data-src="{1}" loading="lazy">
  4725. <span>{
  4726. 2
  4727. }</span>
  4728. </div>
  4729. <span class="badge bg-secondary">{
  4730. 10
  4731. }</span>
  4732. </a>
  4733. </div>
  4734. <div id="notifications" class="border border-top-0 rounded navbar-nav collapse">
  4735. <div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse pubs-button">
  4736. <a id="notification-link-pubs" class="collapsed list-group-item justify-content-between align-items-center d-flex fakelink stretched-link notification-link" href="#" title="New public stream notifications" data-bs-target="#nav-pubs-sub" data-bs-toggle="collapse" data-sse_type="pubs">
  4737. <div>
  4738. <i class="bi bi-globe generic-icons-nav"></i>
  4739. Public Stream
  4740. </div>
  4741. <span class="badge bg-secondary pubs-update"></span>
  4742. </a>
  4743. </div>
  4744. <div id="nav-pubs-sub" class="rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse notification-content" data-bs-parent="#notifications" data-sse_type="pubs">
  4745. <a class="list-group-item list-group-item-action text-decoration-none" id="nav-pubs-see-all" href="pubstream">
  4746. <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> Public stream
  4747. </a>
  4748. <div class="list-group-item list-group-item-action cursor-pointer" id="tt-pubs-only">
  4749. <i class="bi bi-funnel generic-icons-nav"></i> Show new posts only
  4750. </div>
  4751. <div class="list-group-item clearfix notifications-textinput" id="cn-pubs-only">
  4752. <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
  4753. <input id="cn-pubs-input" type="text" class="notification-filter form-control form-control-sm" placeholder="Filter by name or address">
  4754. <div id="cn-pubs-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
  4755. </div>
  4756. <div id="nav-pubs-menu" class="list-group list-group-flush"></div>
  4757. <div id="nav-pubs-loading" class="list-group-item" style="display: none;">
  4758. Loading<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  4759. </div>
  4760. </div>
  4761. </div>
  4762. </div>
  4763.  
  4764.  
  4765.  
  4766.  
  4767. </div>
  4768. </div>
  4769. <div id="region_3" class="pe-0">
  4770. <div id="right_aside_wrapper">
  4771.  
  4772. <div class="card mb-3">
  4773. <!--<h3 class="card-header">Card header</h3>-->
  4774. <img class="d-block user-select-none" width="100%" style="font-size:1.125rem;text-anchor:middle"
  4775. src="https://hub.hubzilla.hu/photo/fa3f4813-e4dc-4837-a7a6-4b86b220e970-9"></img>
  4776. <div class="card-body">
  4777. <div class="d-flex">
  4778. <div id="profile-photo-wrapper" class="bg-body-secondary overflow-hidden me-2"
  4779. style="min-width: 5rem; min-height: 5rem;">
  4780. <img class="img-thumbnail" src="https://hub.hubzilla.hu/photo/profile/m/5?rev=2024-04-01+16%3A34%3A27"
  4781. alt="Der Pepe (Hubzilla) ⁂ ⚝" style="width: 5rem; height: 5rem;">
  4782. </div>
  4783. <div class="vstack d-flex flex-column justify-content-start mt-auto mb-auto">
  4784. <div class="card-title">Der Pepe (Hubzilla) ⁂ ⚝<i class="bi bi-wifi-off text-danger ps-2"
  4785. title=""></i> </div>
  4786. <div class="card-subtitle text-muted">pepecyb&#x40;hub.hubzilla.hu</div>
  4787. </div>
  4788. </div>
  4789. </div>
  4790.  
  4791. <div class="card-body pt-0">
  4792. <p class="card-text">E-Dampfer,
  4793. Blogger,
  4794. Ungarn-Auswanderer,
  4795. Fediverse-Unterstützer,
  4796. Hunde- und Pferderetter… Vaper,
  4797. Blogger,
  4798. Emigrant to Hungary,
  4799. Fediverse Supporter,
  4800. Dog and Horse Saviour...</p>
  4801. </div>
  4802.  
  4803. <ul class="list-group list-group-flush">
  4804. <li class="list-group-item">
  4805. <dt class="location-label">Location:</dt>
  4806. <dd class="adr h-adr">
  4807. <div class="city-state-zip">
  4808. <span class="postal-code p-postal-code"></span>
  4809. <span class="locality p-locality">Nagybaracska</span>
  4810. </div>
  4811. <div class="region p-region">Bács-Kiskun</div>
  4812. <div class="country-name p-country-name">Magyarország</div>
  4813. </dd>
  4814. </li>
  4815. <li class="list-group-item">
  4816.  
  4817. <dt class="gender-label">Gender:</dt>
  4818. <dd class="p-gender">Männlich</dd>
  4819. </li>
  4820. <li class="list-group-item">
  4821.  
  4822. <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Status:</dt>
  4823. <dd class="marital-text ps-2">Verheiratet</dd>
  4824. </li>
  4825. <li class="list-group-item">
  4826. <dt class="card-link"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Homepage:</dt>
  4827. <dd class="ps-2">
  4828. <a href="https://pepecyb.hu" rel="me nofollow" >https://pepecyb.hu</a>
  4829. </dd>
  4830. </li>
  4831. </ul>
  4832. </div>
  4833.  
  4834.  
  4835. <div class="card mb-3">
  4836. <div class="card-header">
  4837. Connections
  4838. <div class="card-tools">
  4839. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  4840. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  4841. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  4842. </button>
  4843. <button type="button" class="btn btn-tool" data-lte-toggle="card-remove">
  4844. <i class="bi bi-x-lg"></i>
  4845. </button>
  4846. </div>
  4847. </div>
  4848. <!-- /.card-header -->
  4849. <div class="card-body p-0">
  4850. <div class="row text-center m-1">
  4851. <div class="col-3 p-2">
  4852. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/37250b05-6428-4934-b360-d316b0d23d70-6" alt="" title="blingbling [[email protected]]">
  4853. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ffederation.network%2Fusers%2F9h2uyorck5">
  4854. blingbling [
  4855. ]
  4856. </a>
  4857. <div class="fs-8">
  4858. </div>
  4859. </div>
  4860.  
  4861. <div class="col-3 p-2">
  4862. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7e05d060-1934-4521-b7be-ddd72c206175-6" alt="" title="loops [[email protected]]">
  4863. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fpixelfed.social%2Fusers%2Floops">
  4864. loops [
  4865. ]
  4866. </a>
  4867. <div class="fs-8">
  4868. </div>
  4869. </div>
  4870.  
  4871. <div class="col-3 p-2">
  4872. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [[email protected]]">
  4873. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=O6I6jrgvtdr0r37EfdS2uuE2NBqR4p956CXR7qXC07AAZQYvtM86R0E_zWwrdNXEmvNuB_FoFfdHXGYHVHeZdw">
  4874. Papa Dragon [
  4875. ]
  4876. </a>
  4877. <div class="fs-8">
  4878. </div>
  4879. </div>
  4880.  
  4881. <div class="col-3 p-2">
  4882. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [[email protected]]">
  4883. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=NXpXobjZUMfnPpq07U_VNexjSKPvg12F3bVON8n2j7qxxCE8QFQjDQ1A62BduWdduVxUReOCQymPPrBe7LyzQg">
  4884. Tiger_micha [
  4885. ]
  4886. </a>
  4887. <div class="fs-8">
  4888. </div>
  4889. </div>
  4890.  
  4891. <div class="col-3 p-2">
  4892. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [[email protected]]">
  4893. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fwizard.casa%2Fusers%2Fmumm">
  4894. Samuel Mumm [
  4895. ]
  4896. </a>
  4897. <div class="fs-8">
  4898. </div>
  4899. </div>
  4900.  
  4901. <div class="col-3 p-2">
  4902. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [[email protected]]">
  4903. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fprocial.tchncs.de%2Fusers%2F9lupyn1xezx48juq">
  4904. grischa [
  4905. ]
  4906. </a>
  4907. <div class="fs-8">
  4908. </div>
  4909. </div>
  4910.  
  4911. <div class="col-3 p-2">
  4912. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [[email protected]]">
  4913. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=uPYQqUfy_VDwqfwEqnOLsYQ3yvQXbhooYwb7u4nXv1OyAQbMM9GMbazH1_BzJFcPSoVhG1mcj2RhUINNZQcizg">
  4914. Steffen [
  4915. ]
  4916. </a>
  4917. <div class="fs-8">
  4918. </div>
  4919. </div>
  4920.  
  4921. <div class="col-3 p-2">
  4922. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [[email protected]]">
  4923. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ot2FFn8A4eOYnsR4FJo-vYGGqpm3NB4eH4bteNBG6nxKYx1P8uOTT9GEn-8KgXK_CAuR28MP5HU53Tqtc45Sfg">
  4924. Ulrich (Hubzilla) [
  4925. ]
  4926. </a>
  4927. <div class="fs-8">
  4928. </div>
  4929. </div>
  4930.  
  4931. <div class="col-3 p-2">
  4932. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [[email protected]]">
  4933. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.agenedia.com%2Fusers%2Fs_hentzschel">
  4934. Sören Hentzschel 🦊 [
  4935. ]
  4936. </a>
  4937. <div class="fs-8">
  4938. </div>
  4939. </div>
  4940.  
  4941. <div class="col-3 p-2">
  4942. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [[email protected]]">
  4943. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ftroet.cafe%2Fusers%2FAsterix_Archiv">
  4944. Asterix Archiv - Comedix.de 💎 [
  4945. ]
  4946. </a>
  4947. <div class="fs-8">
  4948. </div>
  4949. </div>
  4950.  
  4951. <div class="col-3 p-2">
  4952. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [[email protected]]">
  4953. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Finfosec.exchange%2Fusers%2FEm0nM4stodon">
  4954. Em :official_verified: [
  4955. ]
  4956. </a>
  4957. <div class="fs-8">
  4958. </div>
  4959. </div>
  4960.  
  4961. <div class="col-3 p-2">
  4962. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [[email protected]]">
  4963. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=yPbeiIvTGLmrrMKmMBEP2kcQ-SQvVXK02By_aBSOXbIlmnvKMAU3ji-RsfYuAqn4zAWYgQPr0YvFwVV8FQVgGQ">
  4964. Doris [
  4965. ]
  4966. </a>
  4967. <div class="fs-8">
  4968. </div>
  4969. </div>
  4970.  
  4971. <div class="col-3 p-2">
  4972. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [[email protected]]">
  4973. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2Fholarse">
  4974. Holarse - Spielen unter Linux [
  4975. ]
  4976. </a>
  4977. <div class="fs-8">
  4978. </div>
  4979. </div>
  4980.  
  4981. <div class="col-3 p-2">
  4982. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [[email protected]]">
  4983. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=lsC6csa2ywg6LwUqIEKFlRqQ9icH_1yQ9ZzvVujXIKNOgVJ-NRMG05-jhEWg9_JsLdBf9TxzZ2yAqnd26RGsgg">
  4984. 𝓒𝓱𝓻𝓲𝓼 [
  4985. ]
  4986. </a>
  4987. <div class="fs-8">
  4988. </div>
  4989. </div>
  4990.  
  4991. <div class="col-3 p-2">
  4992. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [[email protected]]">
  4993. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.bund.de%2Fusers%2FUmweltbundesamt">
  4994. Umweltbundesamt [
  4995. ]
  4996. </a>
  4997. <div class="fs-8">
  4998. </div>
  4999. </div>
  5000.  
  5001. <div class="col-3 p-2">
  5002. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [[email protected]]">
  5003. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=AkEFH6xk6670ZiBFJ3Q2UIV_MSVnwUZc7_HgmDV8vdFujPf6D3CL-kOZ49CpaEFJT8_CI4oxkqgjslcwnA1zKA">
  5004. Hubzilla Users Support [
  5005. ]
  5006. </a>
  5007. <div class="fs-8">
  5008. </div>
  5009. </div>
  5010.  
  5011. <div class="col-3 p-2">
  5012. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [[email protected]]">
  5013. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=HVZ50N0aybIfXSCM09Gnn8gN49-Hz2SPS3HOtqbNbdODH-V-BNhmdJM2v0QH56Zt1E98ZHQY3_jd5ID_aMTv1Q">
  5014. elmussol [
  5015. ]
  5016. </a>
  5017. <div class="fs-8">
  5018. </div>
  5019. </div>
  5020.  
  5021. <div class="col-3 p-2">
  5022. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [[email protected]]">
  5023. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=zTgMRO7W4dTOPTumqaSYsPOIArDJ01ItgFPAG46B3gL-KieX63JEHvIapK6ibacjhGzqAaotTsnfymXayWIDzA">
  5024. SK [
  5025. ]
  5026. </a>
  5027. <div class="fs-8">
  5028. </div>
  5029. </div>
  5030.  
  5031. <div class="col-3 p-2">
  5032. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [[email protected]]">
  5033. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=kFLk8T_j3wb9R6-MYLMF-49CjvBnh2LADtbX6r0Yob9MN3I5OzmwdIGAt99cQTmtRLFBWgUkzPc5tcI5fLSE1A">
  5034. Witcraft (Hubzilla) [
  5035. ]
  5036. </a>
  5037. <div class="fs-8">
  5038. </div>
  5039. </div>
  5040.  
  5041. <div class="col-3 p-2">
  5042. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [[email protected]]">
  5043. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=Sv04KIQ2ykX1pj5eFt3YtQwzYHv5wKc-yDgDRNI057BCWgJx4N9T__8qqf3XRxwX1ObRzkLlulsItOCedma3OA">
  5044. Hubzilla Statistics [
  5045. ]
  5046. </a>
  5047. <div class="fs-8">
  5048. </div>
  5049. </div>
  5050.  
  5051. <div class="col-3 p-2">
  5052. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [[email protected]]">
  5053. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Flegal.social%2Fusers%2Fopenjur">
  5054. openJur [
  5055. ]
  5056. </a>
  5057. <div class="fs-8">
  5058. </div>
  5059. </div>
  5060.  
  5061. <div class="col-3 p-2">
  5062. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [[email protected]]">
  5063. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ficeshrimp.de%2Fusers%2Fa1jiwi9elo1d4ozz">
  5064. Samuel Mumm [
  5065. ]
  5066. </a>
  5067. <div class="fs-8">
  5068. </div>
  5069. </div>
  5070.  
  5071. <div class="col-3 p-2">
  5072. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [[email protected]]">
  5073. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=oy20JjL8zP9bfvsOuYHhiu7WgIosbDYslpSAbCq0QnUEOXxXDaMDxcub7zai0W2GkuEuCQwiInmjvSChAmmMVg">
  5074. NorVegan [
  5075. ]
  5076. </a>
  5077. <div class="fs-8">
  5078. </div>
  5079. </div>
  5080.  
  5081. <div class="col-3 p-2">
  5082. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [[email protected]]">
  5083. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=qCvZC92AvgH6B3y225uO5PwQsYEZWPFR8grRaD4ad8pCpxUyuD3LOJgAN7TgZzy3BcArp0aFlttem1pAwyhYKA">
  5084. *_jayrope [
  5085. ]
  5086. </a>
  5087. <div class="fs-8">
  5088. </div>
  5089. </div>
  5090.  
  5091. <div class="col-3 p-2">
  5092. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [[email protected]]">
  5093. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmuenster.im%2Fusers%2Ftylers">
  5094. Wild auf Anfrage [
  5095. ]
  5096. </a>
  5097. <div class="fs-8">
  5098. </div>
  5099. </div>
  5100.  
  5101. <div class="col-3 p-2">
  5102. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [[email protected]]">
  5103. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fanonsys.net%2Fprofile%2Ftux">
  5104. Tuxi ⁂ [
  5105. ]
  5106. </a>
  5107. <div class="fs-8">
  5108. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  5109. </div>
  5110. </div>
  5111.  
  5112. <div class="col-3 p-2">
  5113. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [[email protected]]">
  5114. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.fedcast.ch%2Fusers%2FHiker">
  5115. Hiker [
  5116. ]
  5117. </a>
  5118. <div class="fs-8">
  5119. </div>
  5120. </div>
  5121.  
  5122. <div class="col-3 p-2">
  5123. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [[email protected]]">
  5124. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2FNitrumRider">
  5125. NitrumRider [
  5126. ]
  5127. </a>
  5128. <div class="fs-8">
  5129. </div>
  5130. </div>
  5131.  
  5132. <div class="col-3 p-2">
  5133. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [[email protected]]">
  5134. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw">
  5135. Stefan Haydn [
  5136. ]
  5137. </a>
  5138. <div class="fs-8">
  5139. </div>
  5140. </div>
  5141.  
  5142. <div class="col-3 p-2">
  5143. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [[email protected]]">
  5144. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmetalhead.club%2Fusers%2Fjaecds">
  5145. JaeCdS [
  5146. ]
  5147. </a>
  5148. <div class="fs-8">
  5149. </div>
  5150. </div>
  5151.  
  5152. <div class="col-3 p-2">
  5153. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [[email protected]]">
  5154. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.heise.de%2Fusers%2Fheiseonline_TopNews">
  5155. heise online Top News [
  5156. ]
  5157. </a>
  5158. <div class="fs-8">
  5159. </div>
  5160. </div>
  5161.  
  5162. <div class="col-3 p-2">
  5163. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [[email protected]]">
  5164. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=-Jl9KXiXojRXwLhVC8gGOJi0ewV00WjLU9i-C7dJGPcHmUzfpEOzTF6Ks0p28JRKpgURH-8p_lqxwr15T5Uthw">
  5165. M. Dent [
  5166. ]
  5167. </a>
  5168. <div class="fs-8">
  5169. </div>
  5170. </div>
  5171.  
  5172. <div class="col-3 p-2">
  5173. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [[email protected]]">
  5174. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.wikimedia.de%2Fusers%2FwikimediaDE">
  5175. wikimediaDE [
  5176. ]
  5177. </a>
  5178. <div class="fs-8">
  5179. </div>
  5180. </div>
  5181.  
  5182. <div class="col-3 p-2">
  5183. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [[email protected]]">
  5184. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Floma.ml%2Fprofile%2Fsammumm">
  5185. Samuel Mumm [
  5186. ]
  5187. </a>
  5188. <div class="fs-8">
  5189. </div>
  5190. </div>
  5191.  
  5192. <div class="col-3 p-2">
  5193. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [[email protected]]">
  5194. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmoppels.bar%2Fusers%2F98xzvtxs95">
  5195. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [
  5196. ]
  5197. </a>
  5198. <div class="fs-8">
  5199. </div>
  5200. </div>
  5201.  
  5202. <div class="col-3 p-2">
  5203. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [[email protected]]">
  5204. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=goqXyPxSrxHTZQMzve05xd0CYgyw3ct-fDJf9Rl0PbU-zxUs8JZY6vXgNQi9nuE-Skf5W78BlAmd30czD6z9Ig">
  5205. zotlabs.org | Hubzilla Development [
  5206. ]
  5207. </a>
  5208. <div class="fs-8">
  5209. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  5210. </div>
  5211. </div>
  5212.  
  5213. </div>
  5214. <!-- /.users-list -->
  5215. </div>
  5216. <!-- /.card-body -->
  5217. <div class="card-footer text-center">
  5218. <a href="viewconnections/pepecyb"
  5219. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  5220. </div>
  5221. <!-- /.card-footer -->
  5222. </div>
  5223.  
  5224.  
  5225. <div id="pmenu-2" class="pmenu card mb-3">
  5226. <div class="card-body">
  5227. <ul
  5228. class="pmenu-body nav nav-pills flex-column">
  5229. <li id="pmenu-item-3" class="nav-item pmenu-item">
  5230. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  5231. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  5232. </li>
  5233. <li id="pmenu-item-9" class="nav-item pmenu-item">
  5234. <a href="https://hzhelp.pepecyb.hu/"
  5235. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  5236. </li>
  5237. </ul>
  5238. <div class="pmenu-end"></div>
  5239. </div>
  5240. </div>
  5241.  
  5242.  
  5243. <script>
  5244.  
  5245. function toggle_posted_date_button() {
  5246.  
  5247. if($('#posted-date-dropdown').is(':visible')) {
  5248.  
  5249. $('#posted-date-icon').removeClass('bi-chevron-up');
  5250. $('#posted-date-icon').addClass('bi-chevron-down');
  5251. $('#posted-date-dropdown').hide();
  5252.  
  5253. }
  5254. else {
  5255.  
  5256. $('#posted-date-icon').addClass('bi-chevron-up');
  5257. $('#posted-date-icon').removeClass('bi-chevron-down');
  5258. $('#posted-date-dropdown').show();
  5259.  
  5260. }
  5261.  
  5262. }
  5263. </script>
  5264.  
  5265.  
  5266. <div id="datebrowse-sidebar" class="card mb-3">
  5267. <div class="card-header">
  5268. Archives
  5269. </div>
  5270. <div class="card-body">
  5271. <script>function dateSubmit(dateurl) {
  5272. window.location.href = dateurl;
  5273. } </script>
  5274. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  5275. <li class="nav-item" id="posted-date-selector-year-2025">
  5276. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2025'); return false;">2025</a>
  5277. </li>
  5278. <div id="posted-date-selector-2025" style="display: none;">
  5279. <ul class="posted-date-selector-months nav nav-pills flex-column">
  5280. <li class="nav-item">
  5281. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31'); return false;">March</a>
  5282. </li>
  5283. <li class="nav-item">
  5284. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28'); return false;">February</a>
  5285. </li>
  5286. <li class="nav-item">
  5287. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31'); return false;">January</a>
  5288. </li>
  5289. </ul>
  5290. </div>
  5291. <li class="nav-item" id="posted-date-selector-year-2024">
  5292. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2024'); return false;">2024</a>
  5293. </li>
  5294. <div id="posted-date-selector-2024" style="display: none;">
  5295. <ul class="posted-date-selector-months nav nav-pills flex-column">
  5296. <li class="nav-item">
  5297. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31'); return false;">December</a>
  5298. </li>
  5299. <li class="nav-item">
  5300. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30'); return false;">November</a>
  5301. </li>
  5302. <li class="nav-item">
  5303. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31'); return false;">October</a>
  5304. </li>
  5305. <li class="nav-item">
  5306. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30'); return false;">September</a>
  5307. </li>
  5308. <li class="nav-item">
  5309. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31'); return false;">August</a>
  5310. </li>
  5311. <li class="nav-item">
  5312. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31'); return false;">July</a>
  5313. </li>
  5314. <li class="nav-item">
  5315. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30'); return false;">June</a>
  5316. </li>
  5317. <li class="nav-item">
  5318. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31'); return false;">May</a>
  5319. </li>
  5320. <li class="nav-item">
  5321. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30'); return false;">April</a>
  5322. </li>
  5323. <li class="nav-item">
  5324. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31'); return false;">March</a>
  5325. </li>
  5326. </ul>
  5327. </div>
  5328. </ul>
  5329. </div>
  5330. </div>
  5331.  
  5332. <div id="categories-sidebar" class="card mb-3">
  5333. <div class="card-header">
  5334. Categories
  5335. </div>
  5336. <div class="card-body">
  5337. <div id="categories-sidebar-desc"></div>
  5338.  
  5339. <ul class="nav nav-pills flex-column">
  5340. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  5341. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  5342. class="nav-link">Dampfdruck-Presse</a></li>
  5343. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  5344. class="nav-link">Dampfen</a></li>
  5345. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  5346. class="nav-link">Dokumentation</a></li>
  5347. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  5348. class="nav-link">Fediverse</a></li>
  5349. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  5350. class="nav-link">Firefish</a></li>
  5351. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  5352. class="nav-link">Friendica</a></li>
  5353. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  5354. class="nav-link">Gastbeitrag</a></li>
  5355. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  5356. class="nav-link">go</a></li>
  5357. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  5358. class="nav-link">golang</a></li>
  5359. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  5360. class="nav-link">Hilfe</a></li>
  5361. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  5362. class="nav-link">Hubzilla</a></li>
  5363. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  5364. class="nav-link">Hubzilla-Häppchen</a></li>
  5365. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  5366. class="nav-link">Hubzilla-Hilfe</a></li>
  5367. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  5368. class="nav-link">Hubzillahäppchen</a></li>
  5369. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  5370. class="nav-link">Kommentar</a></li>
  5371. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  5372. class="nav-link">Pepes Microblog</a></li>
  5373. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  5374. class="nav-link">Pfrunzlers Weekly</a></li>
  5375. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  5376. class="nav-link">Politik</a></li>
  5377. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  5378. class="nav-link">Support</a></li>
  5379. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  5380. class="nav-link">WHO</a></li>
  5381. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  5382. class="nav-link">Wochenblick</a></li>
  5383. </ul>
  5384. </div>
  5385. </div>
  5386.  
  5387. <div class="tagblock widget"><h3>Tags</h3><div class="tags" align="center"><span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediMeta" class="tag2">CWFediMeta</a>
  5388. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  5389. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  5390. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  5391. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  5392. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  5393. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  5394. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  5395. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  5396. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  5397. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  5398. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  5399. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  5400. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  5401. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  5402. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  5403. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  5404. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  5405. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  5406. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  5407. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  5408. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  5409. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  5410. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  5411. </div></div>
  5412.  
  5413. </div>
  5414. </div>
  5415. </div>
  5416. </div>
  5417. </div>
  5418. </div>
  5419. </div>
  5420. </main>
  5421. <!-- /.content-wrapper -->
  5422.  
  5423. </div>
  5424. <!-- ./wrapper -->
  5425. <script>
  5426. // Color Mode Toggler
  5427. (() => {
  5428.  
  5429. "use strict";
  5430.  
  5431. const storedTheme = localStorage.getItem("theme");
  5432.  
  5433. const getPreferredTheme = () => {
  5434.  
  5435. if (storedTheme) {
  5436.  
  5437. return storedTheme;
  5438.  
  5439. }
  5440.  
  5441. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  5442. "dark" :
  5443. "light";
  5444.  
  5445. };
  5446.  
  5447. const setTheme = function(theme) {
  5448.  
  5449. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  5450.  
  5451. document.documentElement.setAttribute("data-bs-theme",
  5452. "dark");
  5453.  
  5454. } else {
  5455.  
  5456. document.documentElement.setAttribute("data-bs-theme",
  5457. theme);
  5458.  
  5459. }
  5460.  
  5461. };
  5462.  
  5463. const showActiveTheme = (theme,
  5464. focus = false) => {
  5465.  
  5466. const themeSwitcher = document.querySelector("#bd-theme");
  5467.  
  5468. if (!themeSwitcher) {
  5469.  
  5470. return;
  5471.  
  5472. }
  5473.  
  5474. const btnToActive = document.querySelector(`[
  5475. data-bs-theme-value="${theme}"
  5476. ]`);
  5477. const inputToCheck = document.querySelector(`#bd-theme input[
  5478. data-bs-theme-value="${theme}"
  5479. ]`);
  5480.  
  5481. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  5482.  
  5483. element.classList.remove("active");
  5484. element.setAttribute("aria-pressed",
  5485. "false");
  5486.  
  5487. }
  5488.  
  5489. btnToActive.classList.add("active");
  5490. btnToActive.setAttribute("aria-pressed",
  5491. "true");
  5492.  
  5493. // Update the checked state of the radio button
  5494. if (inputToCheck) {
  5495.  
  5496. inputToCheck.checked = true;
  5497.  
  5498. }
  5499.  
  5500. if (focus) {
  5501.  
  5502. btnToActive.focus();
  5503.  
  5504. }
  5505.  
  5506. };
  5507.  
  5508. setTheme(getPreferredTheme());
  5509.  
  5510. window
  5511. .matchMedia("(prefers-color-scheme: dark)")
  5512. .addEventListener("change",
  5513. () => {
  5514.  
  5515. if (storedTheme !== "light" || storedTheme !== "dark") {
  5516.  
  5517. setTheme(getPreferredTheme());
  5518.  
  5519. }
  5520.  
  5521. });
  5522.  
  5523. window.addEventListener("DOMContentLoaded",
  5524. () => {
  5525.  
  5526. showActiveTheme(getPreferredTheme());
  5527.  
  5528. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  5529.  
  5530. toggle.addEventListener("click",
  5531. () => {
  5532.  
  5533. const theme = toggle.getAttribute("data-bs-theme-value");
  5534. localStorage.setItem("theme",
  5535. theme);
  5536. setTheme(theme);
  5537. showActiveTheme(theme,
  5538. true);
  5539.  
  5540. });
  5541.  
  5542. }
  5543.  
  5544. });
  5545.  
  5546. })();
  5547. </script>
  5548. <script>
  5549. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  5550. const Default = {
  5551.  
  5552. scrollbarTheme: "os-theme-light",
  5553.  
  5554. scrollbarAutoHide: "leave",
  5555.  
  5556. scrollbarClickScroll: true,
  5557.  
  5558.  
  5559. };
  5560. document.addEventListener("DOMContentLoaded",
  5561. function() {
  5562.  
  5563. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  5564. if (
  5565. sidebarWrapper &&
  5566. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  5567. ) {
  5568.  
  5569. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper,
  5570. {
  5571.  
  5572. scrollbars: {
  5573.  
  5574. theme: Default.scrollbarTheme,
  5575.  
  5576. autoHide: Default.scrollbarAutoHide,
  5577.  
  5578. clickScroll: Default.scrollbarClickScroll,
  5579.  
  5580.  
  5581. },
  5582.  
  5583.  
  5584. });
  5585.  
  5586. }
  5587.  
  5588. });
  5589. </script> <!--end::OverlayScrollbars Configure-->
  5590. </body>
  5591.  
  5592. </html>
  5593.  
  5594. \Zotlabs\Lib\ActivityStreams::__set_state(array(
  5595. 'raw' => '<!DOCTYPE html>
  5596. <html lang="en">
  5597.  
  5598. <head>
  5599. <meta charset="utf-8">
  5600. <meta name="viewport" content="width=device-width, initial-scale=1">
  5601. <title> - Der Pepe (Hubzilla) ⁂ ⚝ - [email protected]</title>
  5602. <script>
  5603. var baseurl = "https://hub.hubzilla.hu";
  5604. </script>
  5605. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  5606. <base href="https://hub.hubzilla.hu/" />
  5607. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0" />
  5608.  
  5609. <meta name="application-name" content="hubzilla" />
  5610. <meta name="generator" content="hubzilla" />
  5611. <meta name="theme-color" content="" />
  5612.  
  5613. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/hilite/Text_Highlighter/sample.css?v=10.0.8" type="text/css" media="screen">
  5614. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/b2tbtn/view/css/b2tbtn.css?v=10.0.8" type="text/css" media="screen">
  5615. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/lib/photoswipe5/dist/photoswipe.css?v=10.0.8" type="text/css" media="screen">
  5616. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/view/css/gallery.css?v=10.0.8" type="text/css" media="screen">
  5617. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/jRange/jquery.range.css?v=10.0.8" type="text/css" media="screen">
  5618. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/conversation.css?v=10.0.8" type="text/css" media="screen">
  5619. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/widgets.css?v=10.0.8" type="text/css" media="screen">
  5620. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/colorbox.css?v=10.0.8" type="text/css" media="screen">
  5621. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/justifiedGallery/justifiedGallery.min.css?v=10.0.8" type="text/css" media="screen">
  5622. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.css?v=10.0.8" type="text/css" media="screen">
  5623. <link rel="stylesheet" href="https://hub.hubzilla.hu/vendor/twbs/bootstrap-icons/font/bootstrap-icons.min.css?v=10.0.8" type="text/css" media="screen">
  5624. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.css?v=10.0.8" type="text/css" media="screen">
  5625. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css?v=10.0.8" type="text/css" media="screen">
  5626. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/adminlte.css?v=10.0.8" type="text/css" media="screen">
  5627. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/bootstrap.min.css?v=10.0.8" type="text/css" media="screen">
  5628. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/overlayscrollbar.min.css?v=10.0.8" type="text/css" media="screen">
  5629. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/default.css?v=10.0.8" type="text/css" media="screen">
  5630. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/php/style.css?puid=5&updt=1725916434&v=10.0.8" type="text/css" media="screen">
  5631.  
  5632. <script>
  5633.  
  5634. var aStr = {
  5635.  
  5636. \'delitem\' : "Delete this item?",
  5637. \'itemdel\' : "Item deleted",
  5638. \'comment\' : "Comment",
  5639. \'showmore\' : "show all",
  5640. \'showfewer\' : "show less",
  5641. \'divgrowmore\' : "expand",
  5642. \'divgrowless\' : "collapse",
  5643. \'pwshort\' : "Password too short",
  5644. \'pwnomatch\' : "Passwords do not match",
  5645. \'everybody\' : "everybody",
  5646. \'passphrase\' : "Secret Passphrase",
  5647. \'passhint\' : "Passphrase hint",
  5648. \'permschange\' : "Notice: Permissions have changed but have not yet been submitted.",
  5649. \'closeAll\' : "close all",
  5650. \'nothingnew\' : "Nothing new here",
  5651. \'rating_desc\' : "Rate This Channel (this is public)",
  5652. \'rating_val\' : "Rating",
  5653. \'rating_text\' : "Describe (optional)",
  5654. \'submit\' : "Submit",
  5655. \'linkurl\' : "Please enter a link URL",
  5656. \'leavethispage\' : "Unsaved changes. Are you sure you wish to leave this page?",
  5657. \'location\' : "Location",
  5658. \'lovely\' : "lovely",
  5659. \'wonderful\' : "wonderful",
  5660. \'fantastic\' : "fantastic",
  5661. \'great\' : "great",
  5662. \'nick_invld1\' : "Your chosen nickname was either already taken or not valid. Please use our suggestion (",
  5663. \'nick_invld2\' : ") or enter a new one.",
  5664. \'nick_valid\' : "Thank you, this nickname is valid.",
  5665. \'name_empty\' : "A channel name is required.",
  5666. \'name_ok1\' : "This is a ",
  5667. \'name_ok2\' : " channel name",
  5668. \'to_reply\' : "Back to reply",
  5669. \'pinned\' : "Pinned",
  5670. \'pin_item\' : "Pin to the top",
  5671. \'unpin_item\' : "Unpin from the top",
  5672.  
  5673. \'monthNames\' : [ "January","February","March","April","May","June","July","August","September","October","November","December" ],
  5674. \'monthNamesShort\' : [ "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" ],
  5675. \'dayNames\' : ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
  5676. \'dayNamesShort\' : ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
  5677. \'today\' : "today",
  5678. \'month\' : "month",
  5679. \'week\' : "week",
  5680. \'day\' : "day",
  5681. \'allday\' : "All day",
  5682.  
  5683. // mod cloud
  5684. \'download_info\' : "Please stand by while your download is being prepared.",
  5685.  
  5686. // mod register
  5687. \'email_not_valid\' : "Email address not valid",
  5688. \'email_required\' : "Required"
  5689.  
  5690. };
  5691.  
  5692. </script>
  5693.  
  5694.  
  5695. <script src="https://hub.hubzilla.hu/view/js/jquery.js?v=10.0.8"></script>
  5696. <script src="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.js?v=10.0.8"></script>
  5697. <script src="https://hub.hubzilla.hu/library/justifiedGallery/jquery.justifiedGallery.min.js?v=10.0.8"></script>
  5698. <script src="https://hub.hubzilla.hu/library/sprintf.js/dist/sprintf.min.js?v=10.0.8"></script>
  5699. <script src="https://hub.hubzilla.hu/library/textcomplete/textcomplete.min.js?v=10.0.8"></script>
  5700. <script src="https://hub.hubzilla.hu/view/js/autocomplete.js?v=10.0.8"></script>
  5701. <script src="https://hub.hubzilla.hu/library/readmore.js/readmore.js?v=10.0.8"></script>
  5702. <script src="https://hub.hubzilla.hu/library/sjcl/sjcl.js?v=10.0.8"></script>
  5703. <script src="https://hub.hubzilla.hu/library/sodium-plus/dist/sodium-plus.min.js?v=10.0.8"></script>
  5704. <script src="https://hub.hubzilla.hu/view/js/acl.js?v=10.0.8"></script>
  5705. <script src="https://hub.hubzilla.hu/view/js/webtoolkit.base64.js?v=10.0.8"></script>
  5706. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  5707. <script src="https://hub.hubzilla.hu/view/js/crypto.js?v=10.0.8"></script>
  5708. <script src="https://hub.hubzilla.hu/library/jRange/jquery.range.js?v=10.0.8"></script>
  5709. <script src="https://hub.hubzilla.hu/library/colorbox/jquery.colorbox-min.js?v=10.0.8"></script>
  5710. <script src="https://hub.hubzilla.hu/library/jquery.AreYouSure/jquery.are-you-sure.js?v=10.0.8"></script>
  5711. <script src="https://hub.hubzilla.hu/library/tableofcontents/jquery.toc.js?v=10.0.8"></script>
  5712. <script src="https://hub.hubzilla.hu/library/Sortable/Sortable.min.js?v=10.0.8"></script>
  5713. <script src="https://hub.hubzilla.hu/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js?v=10.0.8"></script>
  5714. <script src="https://hub.hubzilla.hu/library/bootbox/bootbox.min.js?v=10.0.8"></script>
  5715. <script src="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.js?v=10.0.8"></script>
  5716. <script src="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js?v=10.0.8"></script>
  5717. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/adminlte.min.js?v=10.0.8"></script>
  5718. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/overlayscrollbar.min.js?v=10.0.8"></script>
  5719.  
  5720. <link rel="alternate" type="application/atom+xml" title="Posts and comments" href="https://hub.hubzilla.hu/feed/pepecyb" />
  5721. <link rel="alternate" type="application/atom+xml" title="Only posts" href="https://hub.hubzilla.hu/feed/pepecyb?f=&top=1" />
  5722. <link rel="alternate" type="application/json+oembed" href="https://hub.hubzilla.hu/oep?f=&url=https%3A%2F%2Fhub.hubzilla.hu%2Fchannel%2Fpepecyb%3Fmid%3D4c683a95-be61-4b2a-a7b4-366e37085cb1" title="oembed" />
  5723. <link rel="manifest" href="/manifest.json" />
  5724. <link rel="shortcut icon" href="https://hub.hubzilla.hu/photo/profile/m/5" />
  5725. <link rel="apple-touch-icon" href="/images/app/hz-192.png" />
  5726. <link rel="search" href="https://hub.hubzilla.hu/opensearch" type="application/opensearchdescription+xml" title="Search Whoville (Hubzilla)" />
  5727.  
  5728.  
  5729. <script>
  5730. var lang = \'en\';
  5731. var updateInterval = 80000;
  5732. var sse_enabled = 0;
  5733. var localUser = false;
  5734. var zid = null;
  5735. var justifiedGalleryActive = false;
  5736. var channelId = 5; var preloadImages = 0;
  5737. var auto_save_draft = true;
  5738. var module = \'channel\';</script>
  5739.  
  5740.  
  5741.  
  5742. <meta name="keywords" content="ungarn,hungary,magyarorsz&aacute;g,vape,linux,gitarre,guitar,selfhost,s04,discworld,scheibenwelt,pratchett,hubzilla,pfrunzel,firefish,fediverse" />
  5743. <meta property="og:title" content="Der Pepe (Hubzilla) ⁂ ⚝">
  5744. <meta property="og:image" content="https://hub.hubzilla.hu/photo/profile/l/5">
  5745. <meta property="og:image:type" content="image/png">
  5746. <meta property="og:description" content="@Der Pepe (Forte) ⁂ ⚝ Test-Posting zur Diagnose">
  5747. <meta property="og:type" content="article">
  5748. <script>
  5749.  
  5750. var bParam_cmd = "https://hub.hubzilla.hu/update/channel";
  5751.  
  5752. var conv_mode = \'channel\';
  5753.  
  5754. var page_mode = \'client\';
  5755.  
  5756. var bParam_uid = 5;
  5757. var bParam_gid = 0;
  5758. var bParam_cid = 0;
  5759. var bParam_cmin = (-1);
  5760. var bParam_cmax = (-1);
  5761. var bParam_star = 0;
  5762. var bParam_liked = 0;
  5763. var bParam_conv = 0;
  5764. var bParam_spam = 0;
  5765. var bParam_new = 0;
  5766. var bParam_page = 1;
  5767. var bParam_wall = 1;
  5768. var bParam_list = 0;
  5769. var bParam_fh = 0;
  5770. var bParam_dm = 0;
  5771.  
  5772. var bParam_search = "";
  5773. var bParam_xchan = "";
  5774. var bParam_order = "post";
  5775. var bParam_file = "";
  5776. var bParam_cats = "";
  5777. var bParam_tags = "";
  5778. var bParam_dend = "";
  5779. var bParam_dbegin = "";
  5780. var bParam_mid = "4c683a95-be61-4b2a-a7b4-366e37085cb1";
  5781. var bParam_verb = "";
  5782. var bParam_net = "";
  5783. var bParam_pf = "";
  5784. var bParam_unseen = "";
  5785.  
  5786. function buildCmd() {
  5787. let udargs = ((page_load) ? "/load" : "");
  5788. let bCmd = bParam_cmd + udargs;
  5789.  
  5790. if(bParam_uid) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "p=" + bParam_uid;
  5791. if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cmin=" + bParam_cmin;
  5792. if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cmax=" + bParam_cmax;
  5793. if(bParam_gid != 0) { bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "gid=" + bParam_gid; } else
  5794. if(bParam_cid != 0) { bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cid=" + bParam_cid; }
  5795. if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "star=" + bParam_star;
  5796. if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "liked=" + bParam_liked;
  5797. if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "conv=" + bParam_conv;
  5798. if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "spam=" + bParam_spam;
  5799. if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "new=" + bParam_new;
  5800. if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "wall=" + bParam_wall;
  5801. if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "list=" + bParam_list;
  5802. if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "fh=" + bParam_fh;
  5803. if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dm=" + bParam_dm;
  5804. if(bParam_search != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "search=" + bParam_search;
  5805. if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "xchan=" + bParam_xchan;
  5806. if(bParam_order != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "order=" + bParam_order;
  5807. if(bParam_file != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "file=" + bParam_file;
  5808. if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cat=" + bParam_cats;
  5809. if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "tag=" + bParam_tags;
  5810. if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dend=" + bParam_dend;
  5811. if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dbegin=" + bParam_dbegin;
  5812. if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "mid=" + bParam_mid;
  5813. if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "verb=" + bParam_verb;
  5814. if(bParam_net != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "net=" + bParam_net;
  5815. if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "page=" + bParam_page;
  5816. if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "pf=" + bParam_pf;
  5817. if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "unseen=" + bParam_unseen;
  5818. return(bCmd);
  5819. }
  5820.  
  5821. </script>
  5822.  
  5823. <script src="/addon/gallery/view/js/gallery.js" type="module"></script><script>$(document).ready(function() { $("#nav-search-text").search_autocomplete(\'https://hub.hubzilla.hu/acl\');});</script><script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  5824. </head>
  5825.  
  5826. <body class="layout-fixed sidebar-expand-md sidebar-mini bg-body-tertiary app-loaded sidebar-open">
  5827. <div class="app-wrapper">
  5828.  
  5829. <header><div id="toast-container" class="vstack gap-3 m-3 position-fixed bottom-0 end-0"></div>
  5830. </header>
  5831. <nav class="app-header navbar navbar-expand bg-body border-0 sticky-top"> <!--begin::Container-->
  5832. <div class="container-fluid"> <!--begin::Start Navbar Links-->
  5833. <ul class="navbar-nav">
  5834. <li class="nav-item">
  5835. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"><i class="bi bi-layout-sidebar"></i></a>
  5836. </li>
  5837. </ul>
  5838. <ul class="navbar-nav">
  5839. </ul>
  5840.  
  5841. <!-- Right navbar links -->
  5842. <ul class="navbar-nav ml-auto">
  5843. <!-- App settings icon-->
  5844.  
  5845. <!-- Navbar Search -->
  5846. <li class="nav-item d-none d-md-block">
  5847. <div class="navbar-search-block">
  5848. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  5849. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  5850. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  5851. onblur="closeMenu(\'nav-search\'); openMenu(\'nav-search-btn\');" />
  5852. </form>
  5853. </div>
  5854. </li>
  5855. <!-- notificattion button for smaller screens-->
  5856. <li id="notifications-btn" class="nav-item d-md-none">
  5857. <a class="nav-link notifications-btn" id="notifications-btn-icon" href="#"><i class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
  5858. </li>
  5859. <script>
  5860. document.getElementById(\'notifications-btn\').addEventListener(\'click\', function (event) {
  5861. event.preventDefault(); // Prevent default link behavior
  5862. });
  5863. </script>
  5864.  
  5865.  
  5866. <!-- user dowpdown menu-->
  5867. <!--end::User Menu Dropdown-->
  5868. <li class="nav-item mt-1 px-1">
  5869. <a class="btn btn-primary btn-sm" href="login" title="Sign in">Login</a>
  5870. </li>
  5871. <li class="nav-item mt-1 px-1">
  5872. <a class="btn btn-success btn-sm" href="register" title="Create an account">Register</a>
  5873. </li>
  5874.  
  5875. <!-- right sidebar button on smaller screen-->
  5876. <li class="nav-item">
  5877. <a class="nav-link d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive"
  5878. aria-controls="offcanvasResponsive"><i class="bi bi-layout-text-sidebar"></i></a>
  5879. </li>
  5880.  
  5881. </ul> <!--end::End Navbar Links-->
  5882. </div> <!--end::Container-->
  5883. </nav>
  5884.  
  5885.  
  5886. <!--begin::Sidebar-->
  5887. <aside class="app-sidebar bg-dark shadow" data-bs-theme="dark">
  5888. <!--begin::Sidebar Brand-->
  5889. <div class="sidebar-brand">
  5890. <!--begin::Brand Link-->
  5891. <a href="/" class="brand-link">
  5892. <!--begin::Brand Image-->
  5893. <!-- <img
  5894. src="./assets/img/AdminLTELogo.png"
  5895. alt="U"
  5896. class="brand-image opacity-75 shadow"
  5897. /> -->
  5898. <!--end::Brand Image-->
  5899. <!--begin::Brand Text-->
  5900. <span class="brand-text fw-light">Whoville</span>
  5901. <!--end::Brand Text-->
  5902. </a>
  5903. <!--end::Brand Link-->
  5904. </div>
  5905. <!--end::Sidebar Brand-->
  5906. <!--begin::Sidebar Wrapper-->
  5907. <div class="sidebar-wrapper">
  5908. <nav class="mt-2">
  5909. <!--begin::Sidebar Menu-->
  5910. <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
  5911. <li class="nav-header pb-3 pt-1">
  5912. <div id="bd-theme" class="btn-group" role="group" aria-label="Basic radio toggle button group">
  5913. <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked
  5914. data-bs-theme-value="auto">
  5915. <label class="btn btn-sm btn-outline-primary" for="btnradio1"><i
  5916. class="bi bi-circle-half me-2"></i>Auto</label>
  5917.  
  5918. <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off"
  5919. data-bs-theme-value="dark">
  5920. <label class="btn btn-sm btn-outline-primary" for="btnradio2"><i
  5921. class="bi bi-moon-fill me-2"></i>Dark</label>
  5922.  
  5923. <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off"
  5924. data-bs-theme-value="light">
  5925. <label class="btn btn-sm btn-outline-primary" for="btnradio3"><i
  5926. class="bi bi-sun-fill me-2"></i>Light</label>
  5927. </div>
  5928. </li>
  5929. <li class="nav-header d-block d-md-none">
  5930. <div class="navbar-search-block">
  5931. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  5932. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  5933. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  5934. onblur="closeMenu(\'nav-search\'); openMenu(\'nav-search-btn\');" />
  5935. </form>
  5936. </div>
  5937. </li>
  5938.  
  5939. <!-- Pinned user apps -->
  5940. <!-- Channel apps; needs fixing -->
  5941. <li class="nav-header" aria-disabled="true">Channel Apps</li>
  5942. <li class="nav-item">
  5943. <a class="nav-link active" href="https://hub.hubzilla.hu/channel/pepecyb" title="Status Messages and Posts"><i class="nav-icon bi bi-house"></i> <p>Channel</p> </a>
  5944. </li>
  5945. <li class="nav-item">
  5946. <a class="nav-link" href="https://hub.hubzilla.hu/profile/pepecyb" title="Profile Details"><i class="nav-icon bi bi-person"></i> <p>About</p> </a>
  5947. </li>
  5948. <li class="nav-item">
  5949. <a class="nav-link" href="https://hub.hubzilla.hu/photos/pepecyb" title="Photo Albums"><i class="nav-icon bi bi-image"></i> <p>Photos</p> </a>
  5950. </li>
  5951. <li class="nav-item">
  5952. <a class="nav-link" href="https://hub.hubzilla.hu/cloud/pepecyb" title="Files and Storage"><i class="nav-icon bi bi-folder"></i> <p>Files</p> </a>
  5953. </li>
  5954. <li class="nav-item">
  5955. <a class="nav-link" href="https://hub.hubzilla.hu/cal/pepecyb" title="Calendar"><i class="nav-icon bi bi-calendar-date"></i> <p>Calendar</p> </a>
  5956. </li>
  5957. <li class="nav-item">
  5958. <a class="nav-link" href="https://hub.hubzilla.hu/gallery/pepecyb" title="Photo Gallery"><i class="nav-icon bi bi-image"></i> <p>Gallery</p> </a>
  5959. </li>
  5960. <li class="nav-item">
  5961. <a class="nav-link" href="https://hub.hubzilla.hu/articles/pepecyb" title="View Articles"><i class="nav-icon bi bi-newspaper"></i> <p>Articles</p> </a>
  5962. </li>
  5963. <li class="nav-item">
  5964. <a class="nav-link" href="https://hub.hubzilla.hu/cards/pepecyb" title="View Cards"><i class="nav-icon bi bi-card-text"></i> <p>Cards</p> </a>
  5965. </li>
  5966. <li class="nav-item">
  5967. <a class="nav-link" href="https://hub.hubzilla.hu/wiki/pepecyb" title="View Cards"><i class="nav-icon bi bi-pencil-square"></i> <p>Wikis</p> </a>
  5968. </li>
  5969. <br>
  5970.  
  5971. <li class="nav-header" aria-disabled="true">System Apps</li>
  5972. <!-- System apps -->
  5973. <!-- other apps in main sidebar menu -->
  5974. <li class="nav-item">
  5975. <a href="https://hub.hubzilla.hu/directory" class="nav-link ">
  5976. <i class="nav-icon bi bi-diagram-3"></i> <p>Directory</p>
  5977. </a>
  5978. </li>
  5979.  
  5980. <!-- other apps in main sidebar menu -->
  5981. <li class="nav-item">
  5982. <a href="https://hub.hubzilla.hu/help" class="nav-link ">
  5983. <i class="nav-icon bi bi-question-lg"></i> <p>Help</p>
  5984. </a>
  5985. </li>
  5986.  
  5987. <!-- other apps in main sidebar menu -->
  5988. <li class="nav-item">
  5989. <a href="https://hub.hubzilla.hu/lang" class="nav-link ">
  5990. <i class="nav-icon bi bi-translate"></i> <p>Language</p>
  5991. </a>
  5992. </li>
  5993.  
  5994. <!-- other apps in main sidebar menu -->
  5995. <li class="nav-item">
  5996. <a href="https://hub.hubzilla.hu/likebanner" class="nav-link ">
  5997. <p>Like Us</p>
  5998. </a>
  5999. </li>
  6000.  
  6001. <!-- other apps in main sidebar menu -->
  6002. <li class="nav-item">
  6003. <a href="https://hub.hubzilla.hu/pubstream" class="nav-link ">
  6004. <i class="nav-icon bi bi-globe"></i> <p>Public Stream</p>
  6005. </a>
  6006. </li>
  6007.  
  6008. <!-- other apps in main sidebar menu -->
  6009. <li class="nav-item">
  6010. <a href="https://hub.hubzilla.hu/qrator" class="nav-link ">
  6011. <i class="nav-icon bi bi-qr-code"></i> <p>QRator</p>
  6012. </a>
  6013. </li>
  6014.  
  6015. <!-- other apps in main sidebar menu -->
  6016. <li class="nav-item">
  6017. <a href="https://hub.hubzilla.hu/randprof" class="nav-link ">
  6018. <i class="nav-icon bi bi-shuffle"></i> <p>Random Channel</p>
  6019. </a>
  6020. </li>
  6021.  
  6022. <!-- other apps in main sidebar menu -->
  6023. <li class="nav-item">
  6024. <a href="https://framagit.org/hubzilla/core/issues" class="nav-link ">
  6025. <i class="nav-icon bi bi-bug"></i> <p>Report Bug</p>
  6026. </a>
  6027. </li>
  6028.  
  6029. <!-- other apps in main sidebar menu -->
  6030. <li class="nav-item">
  6031. <a href="https://hub.hubzilla.hu/search" class="nav-link ">
  6032. <i class="nav-icon bi bi-search"></i> <p>Search</p>
  6033. </a>
  6034. </li>
  6035.  
  6036. <!-- other apps in main sidebar menu -->
  6037. <li class="nav-item">
  6038. <a href="https://hub.hubzilla.hu/donate" class="nav-link ">
  6039. <p>Support Hubzilla</p>
  6040. </a>
  6041. </li>
  6042.  
  6043. </ul>
  6044. <!--end::Sidebar Menu-->
  6045. </nav>
  6046. </div>
  6047. <!--end::Sidebar Wrapper-->
  6048. </aside>
  6049. <!--end::Sidebar-->
  6050.  
  6051. <script>
  6052. document.addEventListener(\'DOMContentLoaded\', function() {
  6053. // Function to apply the saved sidebar state
  6054. function applySavedState() {
  6055. const isDesktop = window.innerWidth >= 768; // AdminLTE\'s desktop breakpoint
  6056. const savedState = localStorage.getItem(\'sidebarCollapsed\');
  6057.  
  6058. // Apply state only on desktop
  6059. if (isDesktop && savedState !== null) {
  6060. document.body.classList.toggle(\'sidebar-collapse\', savedState === \'true\');
  6061. }
  6062. }
  6063.  
  6064. // Apply saved state on initial load
  6065. applySavedState();
  6066.  
  6067. // Re-apply state when window is resized to desktop
  6068. window.addEventListener(\'resize\', applySavedState);
  6069.  
  6070. // Watch for sidebar class changes to update localStorage
  6071. const observer = new MutationObserver(function(mutations) {
  6072. mutations.forEach(function(mutation) {
  6073. if (mutation.attributeName === \'class\') {
  6074. const isDesktop = window.innerWidth >= 768;
  6075. const isCollapsed = document.body.classList.contains(\'sidebar-collapse\');
  6076.  
  6077. // Save state only for desktop interactions
  6078. if (isDesktop) {
  6079. localStorage.setItem(\'sidebarCollapsed\', isCollapsed);
  6080. }
  6081. }
  6082. });
  6083. });
  6084.  
  6085. // Start observing the body element for class changes
  6086. observer.observe(document.body, { attributes: true });
  6087. });
  6088. </script>
  6089.  
  6090. <!-- Content Wrapper. Contains page content -->
  6091. <main class="app-main px-1 py-3" style="min-height: calc(100vh - 56px);">
  6092. <div class="container-xl">
  6093. <div class="row">
  6094. <div id="region_2" class="col-12 col-md-12 col-lg-8">
  6095.  
  6096. <div id="live-channel"></div>
  6097. <script> var profile_uid = 5; var netargs = \'?f=\'; var profile_page = 1; divmore_height = 400;</script>
  6098. <noscript><div id="threads-begin"></div>
  6099. <div id="thread-wrapper-2669850" class="thread-wrapper toplevel_item card generic-content-wrapper h-entry mb-4 clearfix" data-b64mids=\'["4c683a95-be61-4b2a-a7b4-366e37085cb1","776ca57a-93d2-49cb-b24c-b4bccc45b417"]\'>
  6100. <a name="item_2669850" ></a>
  6101. <div class="wall-item-outside-wrapper" id="wall-item-outside-wrapper-2669850" >
  6102. <div class="rounded wall-item-content-wrapper" id="wall-item-content-wrapper-2669850">
  6103. <div class="p-2 wall-item-head wall-item-head-new card-body clearfix">
  6104. <div class="lh-sm text-end float-end">
  6105. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669850">
  6106. <i class="bi bi-geo-alt" title="Nagybaracska"></i>
  6107. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6108. <small class="autotime" title="2025-03-15T14:07:15+01:00"><time class="dt-published" datetime="2025-03-15T14:07:15+01:00">2025-03-15 14:07:15</time></small>
  6109. </div>
  6110. </div>
  6111. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669850" >
  6112. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669850">
  6113. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669850" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  6114. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6115. <div class="dropdown-menu">
  6116. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  6117. </div>
  6118. </div>
  6119. </div>
  6120. <div class="wall-item-author">
  6121. <div class="text-truncate">
  6122. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669850" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  6123. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  6124. </div>
  6125. </div>
  6126. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669850">
  6127. <div class="wall-item-body e-content" id="wall-item-body-2669850">
  6128. @<a href="https://forte.fedi-verse.hu/.well-known/apgateway/did:key:z6MkgFbpi3myEaHerEDnJAYUW9F1gHVCgM8zCD4F2f36bP2U/actor" target="_blank" rel="nofollow noopener" >Der Pepe (Forte) &#8258; &#9885;</a> <br /><br />Test-Posting zur Diagnose
  6129. </div>
  6130. </div>
  6131. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6132. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669850">
  6133. <div class="">
  6134. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2669850">
  6135. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  6136. <div class="dropdown-menu">
  6137. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  6138. </div>
  6139. <div class="">
  6140. <div id="like-rotator-2669850" class="spinner-wrapper">
  6141. <div class="spinner s"></div>
  6142. </div>
  6143. </div>
  6144. </div>
  6145. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669850">
  6146. <div class="">
  6147. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669850">
  6148. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6149. </button>
  6150. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669850">
  6151. <a class="dropdown-item" href="https://hub.hubzilla.hu/item/4c683a95-be61-4b2a-a7b4-366e37085cb1" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  6152. <div class="dropdown-divider"></div>
  6153. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669850" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  6154. </div>
  6155. </div>
  6156. </div>
  6157. </div>
  6158. </div>
  6159. </div>
  6160. <div id="thread-wrapper-2669928" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids=\'["02bc673c-81ab-4384-86fa-493a67dcf7ce"]\'>
  6161. <a name="item_2669928" ></a>
  6162. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2669928" >
  6163. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2669928">
  6164. <div class="p-2 wall-item-head card-body clearfix">
  6165. <div class="lh-sm text-end float-end">
  6166. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669928">
  6167. <a href="http://starwars.com" target="_blank" rel="nofollow noopener" >Felucia</a>
  6168. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6169. <small class="autotime" title="2025-03-15T14:18:59+01:00"><time class="dt-published" datetime="2025-03-15T14:18:59+01:00">2025-03-15 14:18:59</time></small>
  6170. </div>
  6171. </div>
  6172. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669928" >
  6173. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669928">
  6174. <img src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2669928" alt="Stefan Haydn" loading="lazy" data-bs-toggle="dropdown" />
  6175. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6176. <div class="dropdown-menu">
  6177. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" title="View Profile">View Profile</a>
  6178. </div>
  6179. </div>
  6180. </div>
  6181. <div class="wall-item-author">
  6182. <div class="text-truncate">
  6183. <a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2669928" ><bdi>Stefan Haydn</bdi></span></a> </div>
  6184. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  6185. </div>
  6186. </div>
  6187. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669928">
  6188. <div class="wall-item-body e-content" id="wall-item-body-2669928">
  6189. Ist die Installation wie bei streams?
  6190. </div>
  6191. </div>
  6192. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6193. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669928">
  6194. <div class="">
  6195. <div id="like-rotator-2669928" class="spinner-wrapper">
  6196. <div class="spinner s"></div>
  6197. </div>
  6198. </div>
  6199. </div>
  6200. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669928">
  6201. <div class="">
  6202. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669928">
  6203. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6204. </button>
  6205. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669928">
  6206. <a class="dropdown-item" href="https://hub.hayfidelity.de/item/02bc673c-81ab-4384-86fa-493a67dcf7ce" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  6207. <div class="dropdown-divider"></div>
  6208. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2669928" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  6209. </div>
  6210. </div>
  6211. </div>
  6212. </div>
  6213. </div>
  6214. </div>
  6215. </div>
  6216. <div id="thread-wrapper-2670071" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids=\'["398738ae-9974-4e8e-8007-225492532b6b","5238508f-6bf4-44cf-84ab-afebd9e8c33f"]\'>
  6217. <a name="item_2670071" ></a>
  6218. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2670071" >
  6219. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2670071">
  6220. <div class="p-2 wall-item-head card-body clearfix">
  6221. <div class="lh-sm text-end float-end">
  6222. <div class="wall-item-ago opacity-75" id="wall-item-ago-2670071">
  6223. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6224. <small class="autotime" title="2025-03-15T14:46:06+01:00"><time class="dt-published" datetime="2025-03-15T14:46:06+01:00">2025-03-15 14:46:06</time></small>
  6225. </div>
  6226. </div>
  6227. <div class="float-start wall-item-info pe-2" id="wall-item-info-2670071" >
  6228. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2670071">
  6229. <img src="https://hub.hubzilla.hu/photo/profile/s/5" class="fakelink wall-item-photo u-photo p-name img-thumbnail img-size-64" id="wall-item-photo-2670071" alt="Der Pepe (Hubzilla) ⁂ ⚝" loading="lazy" data-bs-toggle="dropdown" />
  6230. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6231. <div class="dropdown-menu">
  6232. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  6233. </div>
  6234. </div>
  6235. </div>
  6236. <div class="wall-item-author">
  6237. <div class="text-truncate">
  6238. <a href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" class="lh-sm wall-item-name-link u-url text-decoration-none"><span class="wall-item-name" id="wall-item-name-2670071" ><bdi>Der Pepe (Hubzilla) ⁂ ⚝</bdi></span></a> </div>
  6239. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">[email protected]</small>
  6240. </div>
  6241. </div>
  6242. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2670071">
  6243. <div class="wall-item-body e-content" id="wall-item-body-2670071">
  6244. Ja, im Prinzip kein Unterschied. Läuft auch absolut geschmeidig.
  6245. </div>
  6246. </div>
  6247. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6248. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2670071">
  6249. <div class="">
  6250. <button type="button" title="1 Like" class="btn btn-sm btn-link text-body-tertiary wall-item-like" data-bs-toggle="dropdown" id="wall-item-like-2670071">
  6251. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  6252. <div class="dropdown-menu">
  6253. <div class="dropdown-item"><a href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" class="text-reset"><img class="menu-img-1" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="Stefan+Haydn" /> Stefan Haydn</a></div> </div>
  6254. </div>
  6255. <div class="">
  6256. <div id="like-rotator-2670071" class="spinner-wrapper">
  6257. <div class="spinner s"></div>
  6258. </div>
  6259. </div>
  6260. </div>
  6261. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2670071">
  6262. <div class="">
  6263. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2670071">
  6264. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6265. </button>
  6266. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2670071">
  6267. <a class="dropdown-item" href="https://hub.hubzilla.hu/display/398738ae-9974-4e8e-8007-225492532b6b" title="Link to Source" class="u-url"><i class="generic-icons-nav bi bi-box-arrow-up-right me-2"></i>Link to Source</a>
  6268. <div class="dropdown-divider"></div>
  6269. <a class="dropdown-item" href="https://hub.hubzilla.hu/link/2670071" title="Link on Hub" class="u-url"><i class="generic-icons-nav fa fa-fw fa-link"></i>Link on Hub</a>
  6270. </div>
  6271. </div>
  6272. </div>
  6273. </div>
  6274. </div>
  6275. </div>
  6276. </div>
  6277. </div>
  6278. <div id="threads-end"></div>
  6279. <div id="conversation-end"></div>
  6280. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  6281. <div class="modal-dialog">
  6282. <div class="modal-content">
  6283. <div class="modal-header">
  6284. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  6285. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  6286. </div>
  6287. <div class="modal-body" id="conversation_settings_body">
  6288. Loading...
  6289. </div>
  6290. </div><!-- /.modal-content -->
  6291. </div><!-- /.modal-dialog -->
  6292. </div><!-- /.modal -->
  6293. <div class="pager">
  6294. <a href="https://hub.hubzilla.hu/channel/pepecyb?mid=4c683a95-be61-4b2a-a7b4-366e37085cb1&page=2" class="pager-next">older</a></div>
  6295. </noscript><div id="threads-begin"></div>
  6296. <div id="threads-end"></div>
  6297. <div id="conversation-end"></div>
  6298. <div id="page-spinner" class="spinner-wrapper">
  6299. <div class="spinner m"></div>
  6300. <div id="image_counter" class="text-muted text-center small"></div>
  6301. </div>
  6302. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  6303. <div class="modal-dialog">
  6304. <div class="modal-content">
  6305. <div class="modal-header">
  6306. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  6307. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  6308. </div>
  6309. <div class="modal-body" id="conversation_settings_body">
  6310. Loading...
  6311. </div>
  6312. </div><!-- /.modal-content -->
  6313. </div><!-- /.modal-dialog -->
  6314. </div><!-- /.modal -->
  6315. <div id="edit-modal" class="modal" tabindex="-1">
  6316. <div class="modal-dialog">
  6317. <div class="modal-content">
  6318. <div class="modal-header">
  6319. <div id="edit-modal-title" class="modal-title w-75">
  6320. <div class="placeholder-wave">
  6321. <span class="placeholder placeholder-lg" style="width: 200px;"></span>
  6322. </div>
  6323. </div>
  6324. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  6325. </div>
  6326. <div id="edit-modal-body" class="modal-body">
  6327. <div class="placeholder-wave">
  6328. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6329. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6330. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6331. </div>
  6332. </div>
  6333. <div class="modal-footer">
  6334. <div id="edit-modal-tools" class="me-auto"></div>
  6335. <button id="contact-save" type="button" class="btn btn-primary"></button>
  6336. </div>
  6337. </div>
  6338. </div>
  6339. </div>
  6340. <script>
  6341.  
  6342. let poi;
  6343. let section = \'roles\';
  6344. let sub_section;
  6345.  
  6346. $(document).ready(function() {
  6347. if (window.location.hash) {
  6348. poi = window.location.hash.substr(1);
  6349. init_contact_edit(poi);
  6350. }
  6351.  
  6352. window.onhashchange = function() {
  6353. if (window.location.hash) {
  6354. poi = window.location.hash.substr(1);
  6355. init_contact_edit(poi);
  6356. }
  6357. };
  6358. });
  6359.  
  6360. $(document).on(\'click\', \'.contact-edit\', function (e) {
  6361. e.preventDefault();
  6362. poi = this.dataset.id
  6363. init_contact_edit(poi);
  6364. });
  6365.  
  6366. $(document).on(\'click\', \'#contact-save\', function () {
  6367. let form_data = $(\'#contact-edit-form\').serialize() + \'&section=\' + section + \'&sub_section=\' + sub_section;
  6368.  
  6369. $.post(\'contactedit/\' + poi, form_data, function(data) {
  6370. if (!data.success) {
  6371. toast(data.message, \'danger\');
  6372. return;
  6373. }
  6374. activate(data);
  6375. toast(data.message, ((data.success) ? \'info\' : \'danger\'));
  6376. // $(\'#edit-modal\').modal(\'hide\');
  6377. });
  6378.  
  6379. });
  6380.  
  6381. $(document).on(\'click\', \'.contact-tool\', function (e) {
  6382. e.preventDefault();
  6383. let cmd = this.dataset.cmd;
  6384.  
  6385. $.get(\'contactedit/\' + poi + \'/\' + cmd, function(data) {
  6386. $(\'#edit-modal-tools\').html(data.tools);
  6387. toast(data.message, ((data.success) ? \'info\' : \'danger\'));
  6388. if (cmd === \'drop\') {
  6389. if ($(\'#contact-entry-wrapper-\' + poi).length) {
  6390. $(\'#contact-entry-wrapper-\' + poi).fadeOut();
  6391. }
  6392. $(\'#edit-modal\').modal(\'hide\');
  6393. }
  6394. });
  6395. });
  6396.  
  6397. $(document).on(\'click\', \'.section\', function () {
  6398. section = this.dataset.section;
  6399. sub_section = \'\';
  6400. });
  6401.  
  6402. $(document).on(\'click\', \'.sub_section\', function () {
  6403. if ($(this).hasClass(\'sub_section_active\')) {
  6404. $(this).removeClass(\'sub_section_active\');
  6405. sub_section = \'\';
  6406. }
  6407. else {
  6408. $(this).addClass(\'sub_section_active\');
  6409. sub_section = this.dataset.section;
  6410. }
  6411. });
  6412.  
  6413. $(\'#edit-modal\').on(\'hidden.bs.modal\', function (e) {
  6414. if (window.location.hash) {
  6415. history.replaceState(null, \'\', \'connections\');
  6416. }
  6417. });
  6418.  
  6419. function init_contact_edit(poi) {
  6420. if (!poi)
  6421. return;
  6422.  
  6423. $(\'.contact-edit-rotator-\' + poi).addClass(\'d-inline-block\');
  6424. $(\'.contact-edit-icon-\' + poi).hide();
  6425. $.get(\'contactedit/\' + poi, function(data) {
  6426. if (!data.success) {
  6427. toast(data.message, \'danger\');
  6428. return;
  6429. }
  6430. $(\'#edit-modal\').modal(\'show\');
  6431. activate(data);
  6432. });
  6433. }
  6434.  
  6435. function activate(data) {
  6436. $(\'#contact-save\').removeClass(\'disabled\');
  6437. $(\'#contact-tools\').removeClass(\'disabled\');
  6438. $(\'.contact-edit-rotator-\' + poi).removeClass(\'d-inline-block\');
  6439. $(\'.contact-edit-icon-\' + poi).show();
  6440.  
  6441. if (data.title) {
  6442. $(\'#edit-modal-title\').html(data.title);
  6443. }
  6444.  
  6445. if (data.body) {
  6446. $(\'#edit-modal-body\').html(data.body);
  6447. }
  6448.  
  6449. if (data.tools) {
  6450. $(\'#edit-modal-tools\').html(data.tools);
  6451. }
  6452.  
  6453. if (data.submit) {
  6454. $(\'#contact-save\').html(data.submit);
  6455. }
  6456.  
  6457. if (data.role && $(\'#contact-role-\' + poi).length) {
  6458. $(\'#contact-role-\' + poi).html(data.role);
  6459. }
  6460.  
  6461. if (data.pending) {
  6462. $(\'#contact-save\').removeClass(\'btn-primary\');
  6463. $(\'#contact-save\').addClass(\'btn-success\');
  6464. }
  6465. else {
  6466. $(\'#contact-save\').addClass(\'btn-primary\');
  6467. $(\'#contact-save\').removeClass(\'btn-success\');
  6468. }
  6469. }
  6470. </script>
  6471. <div id="content-complete"></div>
  6472. <script>
  6473. $(document).ready(function(){
  6474.  
  6475. // hide #back-top first
  6476. $("#back-top").hide();
  6477.  
  6478. // fade in #back-top
  6479. $(function () {
  6480. $(window).scroll(function () {
  6481. if ($(this).scrollTop() > 100) {
  6482. $(\'#back-top\').fadeIn();
  6483. } else {
  6484. $(\'#back-top\').fadeOut();
  6485. }
  6486. });
  6487.  
  6488. // scroll body to 0px on click
  6489. $(\'#back-top a\').click(function () {
  6490. $(\'body,html\').animate({
  6491. scrollTop: 0
  6492. }, 150);
  6493. return false;
  6494. });
  6495. });
  6496.  
  6497. });
  6498. </script><p id="back-top"><a href="#top"><span></span></a></p>
  6499.  
  6500. </div>
  6501.  
  6502. <div class="d-lg-block col-lg-4 sticky-column pe-0">
  6503. <div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
  6504. <div class="offcanvas-header mt-2">
  6505. <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
  6506. </div>
  6507. <div class="offcanvas-body px-0">
  6508. <div class="container row pe-0">
  6509. <div id="region_1" class="pe-0">
  6510. <div id="left_aside_wrapper">
  6511.  
  6512. <script>
  6513. var sse_bs_active = false;
  6514. var sse_offset = 0;
  6515. var sse_type;
  6516. var sse_partial_result = false;
  6517. var sse_rmids = [];
  6518. var sse_fallback_interval;
  6519. var sse_sys_only = 0;
  6520.  
  6521. document.addEventListener("DOMContentLoaded", function() {
  6522. let notificationsWrapper = document.getElementById(\'notifications_wrapper\');
  6523. let notificationsParent = notificationsWrapper ? notificationsWrapper.parentElement.id : null;
  6524. let notificationsBtn = document.querySelector(\'.notifications-btn\');
  6525.  
  6526. // Event listener for notifications button
  6527. if (notificationsBtn) {
  6528. notificationsBtn.addEventListener(\'click\', function() {
  6529. // Remove the \'d-none\' class to show the notifications wrapper
  6530. notificationsWrapper.classList.remove(\'d-none\');
  6531.  
  6532. // Check if the notifications wrapper has the \'fs\' class
  6533. if (notificationsWrapper.classList.contains(\'fs\')) {
  6534. // Prepend the notifications wrapper back to its original parent and hide it
  6535. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  6536. notificationsWrapper.classList.add(\'d-none\');
  6537. } else {
  6538. // Otherwise, prepend the notifications wrapper to \'main\'
  6539. document.querySelector(\'main\').prepend(notificationsWrapper);
  6540. }
  6541.  
  6542. // Toggle the \'fs\' class
  6543. notificationsWrapper.classList.toggle(\'fs\');
  6544. });
  6545. }
  6546.  
  6547. // Event listener for clicking a notification
  6548. document.addEventListener(\'click\', function(event) {
  6549. if (event.target.closest(\'a\') && event.target.closest(\'a\').classList.contains(\'notification\')) {
  6550. console.log(1)
  6551. if (notificationsWrapper.classList.contains(\'fs\')) {
  6552. // Move notifications wrapper back to its original parent and hide it
  6553. notificationsWrapper.classList.remove(\'fs\');
  6554. notificationsWrapper.classList.add(\'d-none\');
  6555. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  6556.  
  6557. }
  6558. }
  6559. });
  6560.  
  6561. if(sse_enabled) {
  6562. if(typeof(window.SharedWorker) === \'undefined\') {
  6563. // notifications with multiple tabs open will not work very well in this scenario
  6564. let evtSource = new EventSource(\'/sse\');
  6565.  
  6566. evtSource.addEventListener(\'notifications\', function(e) {
  6567. let obj = JSON.parse(e.data);
  6568. sse_handleNotifications(obj, false, false);
  6569. }, false);
  6570.  
  6571. document.addEventListener(\'visibilitychange\', function() {
  6572. if (!document.hidden) {
  6573. sse_offset = 0;
  6574. sse_bs_init();
  6575. }
  6576. }, false);
  6577.  
  6578. }
  6579. else {
  6580. let myWorker = new SharedWorker(\'/view/js/sse_worker.js\', localUser);
  6581.  
  6582. myWorker.port.onmessage = function(e) {
  6583. obj = e.data;
  6584. console.log(obj);
  6585. sse_handleNotifications(obj, false, false);
  6586. }
  6587.  
  6588. myWorker.onerror = function(e) {
  6589. myWorker.port.close();
  6590. }
  6591.  
  6592. myWorker.port.start();
  6593. }
  6594. }
  6595. else {
  6596. if (!document.hidden) {
  6597. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  6598. }
  6599.  
  6600. document.addEventListener(\'visibilitychange\', function() {
  6601. if (document.hidden) {
  6602. clearInterval(sse_fallback_interval);
  6603. }
  6604. else {
  6605. sse_offset = 0;
  6606. sse_bs_init();
  6607. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  6608. }
  6609.  
  6610. }, false);
  6611. }
  6612.  
  6613. document.querySelectorAll(\'.notification-link\').forEach(function (element) {
  6614. element.addEventListener(\'click\', function (element) {
  6615. sse_bs_notifications(element, true, false);
  6616. });
  6617. });
  6618.  
  6619. document.querySelectorAll(\'.notification-filter\').forEach(function (element) {
  6620. element.addEventListener(\'keypress\', function(e) {
  6621. if (e.which == 13) { // Enter key
  6622. this.blur();
  6623. sse_offset = 0;
  6624.  
  6625. // Clear the content of the menu
  6626. document.getElementById("nav-" + sse_type + "-menu").innerHTML = \'\';
  6627.  
  6628. // Show the loading element
  6629. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6630.  
  6631. // Get the value from the input element
  6632. var cn_val = document.getElementById(\'cn-\' + sse_type + \'-input\') ? document.getElementById(\'cn-\' + sse_type + \'-input\').value.toString().toLowerCase() : \'\';
  6633.  
  6634. // Send a GET request using the Fetch API
  6635. fetch(\'/sse_bs/\' + sse_type + \'/\' + sse_offset + \'?nquery=\' + encodeURIComponent(cn_val))
  6636. .then(response => response.json())
  6637. .then(obj => {
  6638. console.log(\'sse: bootstraping \' + sse_type);
  6639. console.log(obj);
  6640.  
  6641. sse_bs_active = false;
  6642. sse_partial_result = true;
  6643. sse_offset = obj[sse_type].offset;
  6644. if (sse_offset < 0) {
  6645. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6646. }
  6647.  
  6648. sse_handleNotifications(obj, true, false);
  6649. })
  6650. .catch(error => {
  6651. console.error(\'Error fetching data:\', error);
  6652. });
  6653. }
  6654. });
  6655. });
  6656.  
  6657. document.querySelectorAll(\'.notifications-textinput-clear\').forEach(function (element) {
  6658. element.addEventListener(\'click\', function(e) {
  6659. if (!sse_partial_result) return;
  6660.  
  6661. // Clear the content of the menu
  6662. document.getElementById("nav-" + sse_type + "-menu").innerHTML = \'\';
  6663.  
  6664. // Show the loading element
  6665. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6666.  
  6667. // Send a GET request using the Fetch API
  6668. fetch(\'/sse_bs/\' + sse_type)
  6669. .then(response => response.json())
  6670. .then(obj => {
  6671. console.log(\'sse: bootstraping \' + sse_type);
  6672. console.log(obj);
  6673.  
  6674. sse_bs_active = false;
  6675. sse_partial_result = false;
  6676. sse_offset = obj[sse_type].offset;
  6677. if (sse_offset < 0) {
  6678. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6679. }
  6680.  
  6681. sse_handleNotifications(obj, true, false);
  6682. })
  6683. .catch(error => {
  6684. console.error(\'Error fetching data:\', error);
  6685. });
  6686. });
  6687. });
  6688.  
  6689. document.querySelectorAll(\'.notification-content\').forEach(function(element) {
  6690. element.addEventListener(\'scroll\', function() {
  6691. if (this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight / 7)) {
  6692. sse_bs_notifications(sse_type, false, true);
  6693. }
  6694. });
  6695. });
  6696.  
  6697.  
  6698. document.querySelectorAll(\'#tt-pubs-only\').forEach(function (element) {
  6699. element.addEventListener(\'click\', function(e) {
  6700.  
  6701. let element = e.target.closest(\'div\');
  6702. let menu = document.querySelector(\'#nav-pubs-menu\');
  6703. let notifications = menu.querySelectorAll(\'.notification[data-thread_top="false"]\');
  6704.  
  6705. // Function to check if an element is visible
  6706. function isVisible(el) {
  6707. return el.offsetWidth > 0 && el.offsetHeight > 0;
  6708. }
  6709.  
  6710. if (element.classList.contains(\'active\') && element.classList.contains(\'sticky-top\')) {
  6711. notifications.forEach(function(notification) {
  6712. notification.classList.remove(\'tt-filter-active\');
  6713. });
  6714. element.classList.remove(\'active\', \'sticky-top\');
  6715. } else {
  6716. notifications.forEach(function(notification) {
  6717. notification.classList.add(\'tt-filter-active\');
  6718. });
  6719. element.classList.add(\'active\', \'sticky-top\');
  6720.  
  6721. // Count the visible notifications
  6722. let visibleNotifications = Array.from(menu.querySelectorAll(\'.notification\')).filter(isVisible).length;
  6723.  
  6724. // Load more notifications if the visible count is low
  6725. if (sse_type && sse_offset !== -1 && visibleNotifications < 15) {
  6726. sse_bs_notifications(sse_type, false, true);
  6727. }
  6728. }
  6729.  
  6730. });
  6731. });
  6732.  
  6733. document.querySelectorAll(\'#cn-pubs-input-clear\').forEach(function (element) {
  6734. element.addEventListener(\'click\', function(e) {
  6735. let input = document.getElementById(\'cn-pubs-input\');
  6736. input.value = \'\';
  6737.  
  6738. // Remove \'active\' and \'sticky-top\' classes to the \'only\' element
  6739. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6740. onlyElement.classList.remove(\'active\', \'sticky-top\');
  6741.  
  6742. // Add \'d-none\' class from the clear button
  6743. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6744. clearButton.classList.add(\'d-none\');
  6745.  
  6746. // Remove the \'cn-filter-active\' class from all notifications
  6747. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  6748. notifications.forEach(function(notification) {
  6749. notification.classList.remove(\'cn-filter-active\');
  6750. });
  6751. });
  6752. });
  6753.  
  6754. document.querySelectorAll(\'#cn-pubs-input\').forEach(function (element) {
  6755. element.addEventListener(\'input\', function(e) {
  6756. let input = e.target;
  6757. let val = input.value.toString().toLowerCase();
  6758.  
  6759. // Check if there is input value
  6760. if (val) {
  6761. // Remove \'%\' if it\'s at the beginning of the input value
  6762. val = val.indexOf(\'%\') === 0 ? val.substring(1) : val;
  6763.  
  6764. // Add \'active\' and \'sticky-top\' classes to the \'only\' element
  6765. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6766. onlyElement.classList.add(\'active\', \'sticky-top\');
  6767.  
  6768. // Remove \'d-none\' class from the clear button
  6769. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6770. clearButton.classList.remove(\'d-none\');
  6771. } else {
  6772. // Remove \'active\' and \'sticky-top\' classes from the \'only\' element
  6773. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6774. onlyElement.classList.remove(\'active\', \'sticky-top\');
  6775.  
  6776. // Add \'d-none\' class to the clear button
  6777. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6778. clearButton.classList.add(\'d-none\');
  6779. }
  6780.  
  6781. // Loop through each notification and apply filter logic
  6782. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  6783. notifications.forEach(function(el) {
  6784. let cn = el.dataset.contact_name.toString().toLowerCase();
  6785. let ca = el.dataset.contact_addr.toString().toLowerCase();
  6786.  
  6787. // Check if the contact name or address matches the input value
  6788. if (cn.indexOf(val) === -1 && ca.indexOf(val) === -1) {
  6789. el.classList.add(\'cn-filter-active\');
  6790. } else {
  6791. el.classList.remove(\'cn-filter-active\');
  6792. }
  6793. });
  6794. });
  6795. });
  6796.  
  6797.  
  6798. });
  6799.  
  6800. document.addEventListener(\'hz:sse_setNotificationsStatus\', function(e) {
  6801. sse_setNotificationsStatus(e.detail);
  6802. });
  6803.  
  6804. document.addEventListener(\'hz:sse_bs_init\', function() {
  6805. sse_bs_init();
  6806. });
  6807.  
  6808. document.addEventListener(\'hz:sse_bs_counts\', function() {
  6809. sse_bs_counts();
  6810. });
  6811.  
  6812.  
  6813. function sse_bs_init() {
  6814. // Check if \'notification_open\' exists in sessionStorage or if sse_type is defined
  6815. if (sessionStorage.getItem(\'notification_open\') !== null || typeof sse_type !== \'undefined\') {
  6816. if (typeof sse_type === \'undefined\') {
  6817. sse_type = sessionStorage.getItem(\'notification_open\');
  6818. }
  6819.  
  6820. // Add the \'show\' class to the appropriate element
  6821. let subNav = document.getElementById("nav-" + sse_type + "-sub");
  6822. if (subNav) {
  6823. subNav.classList.add(\'show\');
  6824. }
  6825.  
  6826. // Call the sse_bs_notifications function
  6827. sse_bs_notifications(sse_type, true, false);
  6828. } else {
  6829. // Call the sse_bs_counts function if conditions are not met
  6830. sse_bs_counts();
  6831. }
  6832. }
  6833.  
  6834. function sse_bs_counts() {
  6835. if (sse_bs_active || sse_sys_only) {
  6836. return;
  6837. }
  6838.  
  6839. sse_bs_active = true;
  6840.  
  6841. // Use the fetch API to send the POST request with the data
  6842. fetch(\'/sse_bs\', {
  6843. method: \'POST\',
  6844. body: new URLSearchParams({sse_rmids: sse_rmids})
  6845. })
  6846. .then(response => response.json()) // Parse the JSON response
  6847. .then(obj => {
  6848. console.log(obj);
  6849. sse_bs_active = false;
  6850. sse_rmids = [];
  6851. sse_handleNotifications(obj, true, false);
  6852. })
  6853. .catch(error => {
  6854. console.error(\'Error:\', error);
  6855. sse_bs_active = false;
  6856. });
  6857. }
  6858.  
  6859. function sse_bs_notifications(e, replace, followup) {
  6860. if (sse_bs_active || sse_sys_only) {
  6861. return;
  6862. }
  6863.  
  6864. let manual = false;
  6865.  
  6866. if (typeof replace === \'undefined\') {
  6867. replace = e.data.replace;
  6868. }
  6869.  
  6870. if (typeof followup === \'undefined\') {
  6871. followup = e.data.followup;
  6872. }
  6873.  
  6874. if (typeof e === \'string\') {
  6875. sse_type = e;
  6876. } else {
  6877. manual = true;
  6878. sse_offset = 0;
  6879. sse_type = e.target.dataset.sse_type;
  6880. }
  6881.  
  6882. if (typeof sse_type === \'undefined\') {
  6883. return;
  6884. }
  6885.  
  6886. if (followup || !manual || !document.getElementById(\'notification-link-\' + sse_type).classList.contains(\'collapsed\')) {
  6887.  
  6888. if (sse_offset >= 0) {
  6889. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6890. }
  6891.  
  6892. sessionStorage.setItem(\'notification_open\', sse_type);
  6893.  
  6894. if (sse_offset !== -1 || replace) {
  6895. let cn_val = (document.getElementById(\'cn-\' + sse_type + \'-input\') && sse_partial_result)
  6896. ? document.getElementById(\'cn-\' + sse_type + \'-input\').value.toString().toLowerCase()
  6897. : \'\';
  6898.  
  6899. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6900.  
  6901. sse_bs_active = true;
  6902.  
  6903. // Send POST request using fetch API
  6904. fetch(\'/sse_bs/\' + sse_type + \'/\' + sse_offset, {
  6905. method: \'POST\',
  6906. body: new URLSearchParams({
  6907. sse_rmids: sse_rmids,
  6908. nquery: encodeURIComponent(cn_val)
  6909. })
  6910. })
  6911. .then(response => response.json()) // Parse the JSON response
  6912. .then(obj => {
  6913. console.log(\'sse: bootstraping \' + sse_type);
  6914. console.log(obj);
  6915. sse_bs_active = false;
  6916. sse_rmids = [];
  6917. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6918. sse_offset = obj[sse_type].offset;
  6919. sse_handleNotifications(obj, replace, followup);
  6920. })
  6921. .catch(error => {
  6922. console.error(\'Error:\', error);
  6923. sse_bs_active = false;
  6924. });
  6925. } else {
  6926. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6927. }
  6928. } else {
  6929. sessionStorage.removeItem(\'notification_open\');
  6930. }
  6931. }
  6932.  
  6933. function sse_handleNotifications(obj, replace, followup) {
  6934. // Notice and info notifications
  6935. if (obj.notice) {
  6936. obj.notice.notifications.forEach(notification => {
  6937. toast(notification, \'danger\');
  6938. });
  6939. }
  6940.  
  6941. if (obj.info) {
  6942. obj.info.notifications.forEach(notification => {
  6943. toast(notification, \'info\');
  6944. });
  6945. }
  6946.  
  6947. if (sse_sys_only) {
  6948. return;
  6949. }
  6950.  
  6951. let primary_notifications = [\'dm\', \'home\', \'intros\', \'register\', \'notify\', \'files\'];
  6952. let secondary_notifications = [\'network\', \'forums\', \'all_events\', \'pubs\'];
  6953. let all_notifications = [...primary_notifications, ...secondary_notifications];
  6954.  
  6955. all_notifications.forEach(type => {
  6956. if (typeof obj[type] === \'undefined\') {
  6957. return;
  6958. }
  6959.  
  6960. let count = Number(obj[type].count);
  6961.  
  6962. // Show notifications and update count
  6963. let updateElement = document.querySelector(\'.\' + type + \'-update\');
  6964. let buttonElement = document.querySelector(\'.\' + type + \'-button\');
  6965. let subElement = document.getElementById(\'nav-\' + type + \'-sub\');
  6966.  
  6967. if (count) {
  6968. if (buttonElement) buttonElement.style.display = \'block\'; // Fade-in effect replaced by display block
  6969. if (replace || followup) {
  6970. updateElement.textContent = count >= 100 ? \'99+\' : count;
  6971. } else {
  6972. count = count + Number(updateElement.textContent.replace(/\\++$/, \'\'));
  6973. updateElement.textContent = count >= 100 ? \'99+\' : count;
  6974. }
  6975. } else {
  6976. if (updateElement) updateElement.textContent = \'0\';
  6977. if (subElement) subElement.classList.remove(\'show\');
  6978. if (buttonElement) {
  6979. buttonElement.style.display = \'none\'; // Fade-out effect replaced by display none
  6980. sse_setNotificationsStatus();
  6981. }
  6982. }
  6983.  
  6984. if (obj[type].notifications.length) {
  6985. sse_handleNotificationsItems(type, obj[type].notifications, replace, followup);
  6986. }
  6987. });
  6988.  
  6989. sse_setNotificationsStatus();
  6990.  
  6991. // Load more notifications if visible notifications count becomes low
  6992. if (sse_type && sse_offset !== -1) {
  6993. let menu = document.getElementById(\'nav-\' + sse_type + \'-menu\');
  6994. if (menu && menu.children.length < 15) {
  6995. sse_bs_notifications(sse_type, false, true);
  6996. }
  6997. }
  6998. }
  6999.  
  7000. function sse_handleNotificationsItems(notifyType, data, replace, followup) {
  7001.  
  7002. // Get the template, adjust based on the notification type
  7003. let notifications_tpl = (notifyType === \'forums\')
  7004. ? decodeURIComponent(document.querySelector("#nav-notifications-forums-template[rel=template]").innerHTML.replace(\'data-src\', \'src\'))
  7005. : decodeURIComponent(document.querySelector("#nav-notifications-template[rel=template]").innerHTML.replace(\'data-src\', \'src\'));
  7006.  
  7007. let notify_menu = document.getElementById("nav-" + notifyType + "-menu");
  7008. let notify_loading = document.getElementById("nav-" + notifyType + "-loading");
  7009. let notify_count = document.getElementsByClassName(notifyType + "-update");
  7010.  
  7011. if (replace && !followup) {
  7012. notify_menu.innerHTML = \'\'; // Clear menu
  7013. notify_loading.style.display = \'none\'; // Hide loading
  7014. }
  7015.  
  7016. data.forEach(notification => {
  7017. // Special handling for network notifications
  7018. if (!replace && !followup && notification.thread_top && notifyType === \'network\') {
  7019. document.dispatchEvent(new CustomEvent(\'hz:handleNetworkNotificationsItems\', { detail: notification }));
  7020. }
  7021.  
  7022. // Prepare HTML using the template
  7023. let html = notifications_tpl.format(
  7024. notification.notify_link,
  7025. notification.photo,
  7026. notification.name,
  7027. notification.addr,
  7028. notification.message,
  7029. notification.when,
  7030. notification.hclass,
  7031. notification.b64mid,
  7032. notification.notify_id,
  7033. notification.thread_top,
  7034. notification.unseen,
  7035. notification.private_forum,
  7036. encodeURIComponent(notification.mids),
  7037. notification.body
  7038. );
  7039.  
  7040. // Append the new notification HTML to the menu
  7041. notify_menu.insertAdjacentHTML(\'beforeend\', html);
  7042. });
  7043.  
  7044. // Sort notifications by date
  7045. if (!replace && !followup) {
  7046. let notifications = Array.from(notify_menu.getElementsByClassName(\'notification\'));
  7047. notifications.sort((a, b) => {
  7048. let dateA = new Date(a.dataset.when);
  7049. let dateB = new Date(b.dataset.when);
  7050. return dateA > dateB ? -1 : dateA < dateB ? 1 : 0;
  7051. });
  7052. notifications.forEach(notification => notify_menu.appendChild(notification));
  7053. }
  7054.  
  7055. // Filter thread_top notifications if the filter is active
  7056. let filterThreadTop = document.getElementById(\'tt-\' + notifyType + \'-only\');
  7057. if (filterThreadTop && filterThreadTop.classList.contains(\'active\')) {
  7058. let notifications = notify_menu.querySelectorAll(\'[data-thread_top="false"]\');
  7059. notifications.forEach(notification => notification.classList.add(\'tt-filter-active\'));
  7060. }
  7061.  
  7062. // Filter notifications based on the input field
  7063. let filterInput = document.getElementById(\'cn-\' + notifyType + \'-input\');
  7064. if (filterInput) {
  7065. let filter = filterInput.value.toString().toLowerCase();
  7066. if (filter) {
  7067. if (filter.indexOf(\'%\') === 0) filter = filter.substring(1); // Remove the percent if it exists
  7068. let notifications = notify_menu.querySelectorAll(\'.notification\');
  7069. notifications.forEach(notification => {
  7070. let cn = notification.dataset.contact_name.toString().toLowerCase();
  7071. let ca = notification.dataset.contact_addr.toString().toLowerCase();
  7072. if (cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1) {
  7073. notification.classList.add(\'cn-filter-active\');
  7074. } else {
  7075. notification.classList.remove(\'cn-filter-active\');
  7076. }
  7077. });
  7078. }
  7079. }
  7080.  
  7081. // Update relative time for notifications
  7082. updateRelativeTime(\'.autotime-narrow\');
  7083. }
  7084.  
  7085.  
  7086. function sse_updateNotifications(type, mid) {
  7087.  
  7088. // Skip processing if the type is \'notify\' and the conditions don\'t match
  7089. if (type === \'notify\' && (mid !== bParam_mid || sse_type !== \'notify\')) {
  7090. return true;
  7091. }
  7092.  
  7093. // Find the notification element based on its \'data-b64mid\' attribute
  7094. let notification = document.querySelector(`#nav-${type}-menu .notification[data-b64mid=\'${mid}\']`);
  7095.  
  7096. if (notification) {
  7097. notification.remove();
  7098. }
  7099. }
  7100.  
  7101.  
  7102. function sse_setNotificationsStatus(data) {
  7103. let primary_notifications = [\'dm\', \'home\', \'intros\', \'register\', \'notify\', \'files\'];
  7104. let secondary_notifications = [\'network\', \'forums\', \'all_events\', \'pubs\'];
  7105. let all_notifications = primary_notifications.concat(secondary_notifications);
  7106.  
  7107. let primary_available = false;
  7108. let any_available = false;
  7109.  
  7110. // Loop through all notifications and check their visibility
  7111. all_notifications.forEach(function (type) {
  7112. let button = document.querySelector(`.${type}-button`);
  7113. if (button && getComputedStyle(button).display === \'block\') {
  7114. any_available = true;
  7115. if (primary_notifications.indexOf(type) > -1) {
  7116. primary_available = true;
  7117. }
  7118. }
  7119. });
  7120.  
  7121. // Update notification button icon based on the primary notification availability
  7122. let notificationIcon = document.querySelector(\'.notifications-btn-icon\');
  7123. if (primary_available) {
  7124. notificationIcon.classList.remove(\'bi-exclamation-circle\');
  7125. notificationIcon.classList.add(\'bi-exclamation-triangle\');
  7126. } else {
  7127. notificationIcon.classList.remove(\'bi-exclamation-triangle\');
  7128. notificationIcon.classList.add(\'bi-exclamation-circle\');
  7129. }
  7130.  
  7131. // Update visibility of notification button and sections
  7132. let notificationsBtn = document.querySelector(\'.notifications-btn\');
  7133. let noNotifications = document.querySelector(\'#no_notifications\');
  7134. let notifications = document.querySelector(\'#notifications\');
  7135. let navbarCollapse = document.querySelector(\'#navbar-collapse-1\');
  7136.  
  7137. if (any_available) {
  7138. notificationsBtn.style.opacity = 1;
  7139. noNotifications.style.display = \'none\';
  7140. notifications.style.display = \'block\';
  7141. } else {
  7142. notificationsBtn.style.opacity = 0.5;
  7143. if (navbarCollapse) navbarCollapse.classList.remove(\'show\');
  7144. noNotifications.style.display = \'block\';
  7145. notifications.style.display = \'none\';
  7146. }
  7147.  
  7148. // Handle specific notifications if \'data\' is provided
  7149. if (typeof data !== \'undefined\') {
  7150. data.forEach(function (nmid) {
  7151. sse_rmids.push(nmid);
  7152.  
  7153. // Handle regular notifications
  7154. let notification = document.querySelector(`.notification[data-b64mid=\'${nmid}\']`);
  7155. if (notification) {
  7156. let parentId = notification.parentElement.id.split(\'-\')[1];
  7157. sse_updateNotifications(parentId, nmid);
  7158. }
  7159.  
  7160. // Special handling for forum notifications
  7161. let forumNotifications = document.querySelectorAll(\'.notification-forum\');
  7162. forumNotifications.forEach(function (forumNotification) {
  7163. let fmids = decodeURIComponent(forumNotification.dataset.b64mids);
  7164. let parentId = forumNotification.parentElement.id.split(\'-\')[1];
  7165.  
  7166. if (fmids.indexOf(nmid) > -1) {
  7167. let updateElem = document.querySelector(`.${parentId}-update`);
  7168. let fcount = Number(updateElem.innerText);
  7169. fcount--;
  7170. updateElem.innerText = fcount;
  7171.  
  7172. if (fcount < 1) {
  7173. let button = document.querySelector(`.${parentId}-button`);
  7174. button.style.display = \'none\';
  7175. let subMenu = document.querySelector(`#nav-${parentId}-sub`);
  7176. if (subMenu) subMenu.classList.remove(\'show\');
  7177. }
  7178.  
  7179. let countElem = forumNotification.querySelector(\'.bg-secondary\');
  7180. let count = Number(countElem.innerText);
  7181. count--;
  7182. countElem.innerText = count;
  7183.  
  7184. if (count < 1) {
  7185. forumNotification.remove();
  7186. }
  7187. }
  7188. });
  7189. });
  7190. }
  7191. }
  7192.  
  7193. function sse_fallback() {
  7194. fetch(\'/sse\')
  7195. .then(response => response.json())
  7196. .then(obj => {
  7197. if (!obj) return;
  7198.  
  7199. console.log(\'sse fallback\');
  7200. console.log(obj);
  7201.  
  7202. sse_handleNotifications(obj, false, false);
  7203. })
  7204. .catch(error => {
  7205. console.error(\'Error fetching SSE data:\', error);
  7206. });
  7207. }
  7208.  
  7209. </script>
  7210.  
  7211. <div id="notifications_wrapper" class="mb-0">
  7212. <div id="no_notifications" class="d-block d-none">
  7213. Sorry, you have got no notifications at the moment<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  7214. </div>
  7215. <div id="nav-notifications-template" rel="template" class="d-none">
  7216. <a class="list-group-item list-group-item-action notification {6}" href="{0}" title="{13}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-when="{5}">
  7217. <img data-src="{1}" loading="lazy" class="rounded float-start me-2 menu-img-2">
  7218. <div class="text-nowrap">
  7219. <div class="d-flex justify-content-between align-items-center lh-sm">
  7220. <div class="text-truncate pe-1">
  7221. <strong title="{2} - {3}">{2}</strong>
  7222. </div>
  7223. <small class="autotime-narrow opacity-75" title="{5}"></small>
  7224. </div>
  7225. <div class="text-truncate">{4}</div>
  7226. </div>
  7227. </a>
  7228. </div>
  7229. <div id="nav-notifications-forums-template" rel="template" class="d-none">
  7230. <a class="list-group-item list-group-item-action justify-content-between align-items-center d-flex notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}" data-b64mids=\'{12}\'>
  7231. <div>
  7232. <img class="menu-img-1" data-src="{1}" loading="lazy">
  7233. <span>{2}</span>
  7234. </div>
  7235. <span class="badge bg-secondary">{10}</span>
  7236. </a>
  7237. </div>
  7238. <div id="notifications" class="border border-top-0 rounded navbar-nav collapse">
  7239. <div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse pubs-button">
  7240. <a id="notification-link-pubs" class="collapsed list-group-item justify-content-between align-items-center d-flex fakelink stretched-link notification-link" href="#" title="New public stream notifications" data-bs-target="#nav-pubs-sub" data-bs-toggle="collapse" data-sse_type="pubs">
  7241. <div>
  7242. <i class="bi bi-globe generic-icons-nav"></i>
  7243. Public Stream
  7244. </div>
  7245. <span class="badge bg-secondary pubs-update"></span>
  7246. </a>
  7247. </div>
  7248. <div id="nav-pubs-sub" class="rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse notification-content" data-bs-parent="#notifications" data-sse_type="pubs">
  7249. <a class="list-group-item list-group-item-action text-decoration-none" id="nav-pubs-see-all" href="pubstream">
  7250. <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> Public stream
  7251. </a>
  7252. <div class="list-group-item list-group-item-action cursor-pointer" id="tt-pubs-only">
  7253. <i class="bi bi-funnel generic-icons-nav"></i> Show new posts only
  7254. </div>
  7255. <div class="list-group-item clearfix notifications-textinput" id="cn-pubs-only">
  7256. <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
  7257. <input id="cn-pubs-input" type="text" class="notification-filter form-control form-control-sm" placeholder="Filter by name or address">
  7258. <div id="cn-pubs-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
  7259. </div>
  7260. <div id="nav-pubs-menu" class="list-group list-group-flush"></div>
  7261. <div id="nav-pubs-loading" class="list-group-item" style="display: none;">
  7262. Loading<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  7263. </div>
  7264. </div>
  7265. </div>
  7266. </div>
  7267.  
  7268.  
  7269.  
  7270.  
  7271. </div>
  7272. </div>
  7273. <div id="region_3" class="pe-0">
  7274. <div id="right_aside_wrapper">
  7275.  
  7276. <div class="card mb-3">
  7277. <!--<h3 class="card-header">Card header</h3>-->
  7278. <img class="d-block user-select-none" width="100%" style="font-size:1.125rem;text-anchor:middle"
  7279. src="https://hub.hubzilla.hu/photo/fa3f4813-e4dc-4837-a7a6-4b86b220e970-9"></img>
  7280. <div class="card-body">
  7281. <div class="d-flex">
  7282. <div id="profile-photo-wrapper" class="bg-body-secondary overflow-hidden me-2"
  7283. style="min-width: 5rem; min-height: 5rem;">
  7284. <img class="img-thumbnail" src="https://hub.hubzilla.hu/photo/profile/m/5?rev=2024-04-01+16%3A34%3A27"
  7285. alt="Der Pepe (Hubzilla) ⁂ ⚝" style="width: 5rem; height: 5rem;">
  7286. </div>
  7287. <div class="vstack d-flex flex-column justify-content-start mt-auto mb-auto">
  7288. <div class="card-title">Der Pepe (Hubzilla) ⁂ ⚝<i class="bi bi-wifi-off text-danger ps-2"
  7289. title=""></i> </div>
  7290. <div class="card-subtitle text-muted">pepecyb&#x40;hub.hubzilla.hu</div>
  7291. </div>
  7292. </div>
  7293. </div>
  7294.  
  7295. <div class="card-body pt-0">
  7296. <p class="card-text">E-Dampfer, Blogger, Ungarn-Auswanderer, Fediverse-Unterstützer, Hunde- und Pferderetter… Vaper, Blogger, Emigrant to Hungary, Fediverse Supporter, Dog and Horse Saviour...</p>
  7297. </div>
  7298.  
  7299. <ul class="list-group list-group-flush">
  7300. <li class="list-group-item">
  7301. <dt class="location-label">Location:</dt>
  7302. <dd class="adr h-adr">
  7303. <div class="city-state-zip">
  7304. <span class="postal-code p-postal-code"></span>
  7305. <span class="locality p-locality">Nagybaracska</span>
  7306. </div>
  7307. <div class="region p-region">Bács-Kiskun</div>
  7308. <div class="country-name p-country-name">Magyarország</div>
  7309. </dd>
  7310. </li>
  7311. <li class="list-group-item">
  7312.  
  7313. <dt class="gender-label">Gender:</dt>
  7314. <dd class="p-gender">Männlich</dd>
  7315. </li>
  7316. <li class="list-group-item">
  7317.  
  7318. <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Status:</dt>
  7319. <dd class="marital-text ps-2">Verheiratet</dd>
  7320. </li>
  7321. <li class="list-group-item">
  7322. <dt class="card-link"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Homepage:</dt>
  7323. <dd class="ps-2">
  7324. <a href="https://pepecyb.hu" rel="me nofollow" >https://pepecyb.hu</a>
  7325. </dd>
  7326. </li>
  7327. </ul>
  7328. </div>
  7329.  
  7330.  
  7331. <div class="card mb-3">
  7332. <div class="card-header">
  7333. Connections
  7334. <div class="card-tools">
  7335. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  7336. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  7337. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  7338. </button>
  7339. <button type="button" class="btn btn-tool" data-lte-toggle="card-remove">
  7340. <i class="bi bi-x-lg"></i>
  7341. </button>
  7342. </div>
  7343. </div>
  7344. <!-- /.card-header -->
  7345. <div class="card-body p-0">
  7346. <div class="row text-center m-1">
  7347. <div class="col-3 p-2">
  7348. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/37250b05-6428-4934-b360-d316b0d23d70-6" alt="" title="blingbling [[email protected]]">
  7349. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ffederation.network%2Fusers%2F9h2uyorck5">
  7350. blingbling [[email protected]]
  7351. </a>
  7352. <div class="fs-8">
  7353. </div>
  7354. </div>
  7355.  
  7356. <div class="col-3 p-2">
  7357. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7e05d060-1934-4521-b7be-ddd72c206175-6" alt="" title="loops [[email protected]]">
  7358. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fpixelfed.social%2Fusers%2Floops">
  7359. </a>
  7360. <div class="fs-8">
  7361. </div>
  7362. </div>
  7363.  
  7364. <div class="col-3 p-2">
  7365. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [[email protected]]">
  7366. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=O6I6jrgvtdr0r37EfdS2uuE2NBqR4p956CXR7qXC07AAZQYvtM86R0E_zWwrdNXEmvNuB_FoFfdHXGYHVHeZdw">
  7367. Papa Dragon [[email protected]]
  7368. </a>
  7369. <div class="fs-8">
  7370. </div>
  7371. </div>
  7372.  
  7373. <div class="col-3 p-2">
  7374. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [[email protected]]">
  7375. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=NXpXobjZUMfnPpq07U_VNexjSKPvg12F3bVON8n2j7qxxCE8QFQjDQ1A62BduWdduVxUReOCQymPPrBe7LyzQg">
  7376. Tiger_micha [[email protected]]
  7377. </a>
  7378. <div class="fs-8">
  7379. </div>
  7380. </div>
  7381.  
  7382. <div class="col-3 p-2">
  7383. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [[email protected]]">
  7384. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fwizard.casa%2Fusers%2Fmumm">
  7385. Samuel Mumm [[email protected]]
  7386. </a>
  7387. <div class="fs-8">
  7388. </div>
  7389. </div>
  7390.  
  7391. <div class="col-3 p-2">
  7392. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [[email protected]]">
  7393. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fprocial.tchncs.de%2Fusers%2F9lupyn1xezx48juq">
  7394. grischa [[email protected]]
  7395. </a>
  7396. <div class="fs-8">
  7397. </div>
  7398. </div>
  7399.  
  7400. <div class="col-3 p-2">
  7401. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [[email protected]]">
  7402. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=uPYQqUfy_VDwqfwEqnOLsYQ3yvQXbhooYwb7u4nXv1OyAQbMM9GMbazH1_BzJFcPSoVhG1mcj2RhUINNZQcizg">
  7403. Steffen [[email protected]]
  7404. </a>
  7405. <div class="fs-8">
  7406. </div>
  7407. </div>
  7408.  
  7409. <div class="col-3 p-2">
  7410. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [[email protected]]">
  7411. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ot2FFn8A4eOYnsR4FJo-vYGGqpm3NB4eH4bteNBG6nxKYx1P8uOTT9GEn-8KgXK_CAuR28MP5HU53Tqtc45Sfg">
  7412. Ulrich (Hubzilla) [[email protected]]
  7413. </a>
  7414. <div class="fs-8">
  7415. </div>
  7416. </div>
  7417.  
  7418. <div class="col-3 p-2">
  7419. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [[email protected]]">
  7420. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.agenedia.com%2Fusers%2Fs_hentzschel">
  7421. Sören Hentzschel 🦊 [[email protected]]
  7422. </a>
  7423. <div class="fs-8">
  7424. </div>
  7425. </div>
  7426.  
  7427. <div class="col-3 p-2">
  7428. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [[email protected]]">
  7429. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ftroet.cafe%2Fusers%2FAsterix_Archiv">
  7430. Asterix Archiv - Comedix.de 💎 [[email protected]]
  7431. </a>
  7432. <div class="fs-8">
  7433. </div>
  7434. </div>
  7435.  
  7436. <div class="col-3 p-2">
  7437. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [[email protected]]">
  7438. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Finfosec.exchange%2Fusers%2FEm0nM4stodon">
  7439. Em :official_verified: [[email protected]]
  7440. </a>
  7441. <div class="fs-8">
  7442. </div>
  7443. </div>
  7444.  
  7445. <div class="col-3 p-2">
  7446. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [[email protected]]">
  7447. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=yPbeiIvTGLmrrMKmMBEP2kcQ-SQvVXK02By_aBSOXbIlmnvKMAU3ji-RsfYuAqn4zAWYgQPr0YvFwVV8FQVgGQ">
  7448. </a>
  7449. <div class="fs-8">
  7450. </div>
  7451. </div>
  7452.  
  7453. <div class="col-3 p-2">
  7454. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [[email protected]]">
  7455. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2Fholarse">
  7456. Holarse - Spielen unter Linux [[email protected]]
  7457. </a>
  7458. <div class="fs-8">
  7459. </div>
  7460. </div>
  7461.  
  7462. <div class="col-3 p-2">
  7463. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [[email protected]]">
  7464. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=lsC6csa2ywg6LwUqIEKFlRqQ9icH_1yQ9ZzvVujXIKNOgVJ-NRMG05-jhEWg9_JsLdBf9TxzZ2yAqnd26RGsgg">
  7465. 𝓒𝓱𝓻𝓲𝓼 [[email protected]]
  7466. </a>
  7467. <div class="fs-8">
  7468. </div>
  7469. </div>
  7470.  
  7471. <div class="col-3 p-2">
  7472. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [[email protected]]">
  7473. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.bund.de%2Fusers%2FUmweltbundesamt">
  7474. Umweltbundesamt [[email protected]]
  7475. </a>
  7476. <div class="fs-8">
  7477. </div>
  7478. </div>
  7479.  
  7480. <div class="col-3 p-2">
  7481. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [[email protected]]">
  7482. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=AkEFH6xk6670ZiBFJ3Q2UIV_MSVnwUZc7_HgmDV8vdFujPf6D3CL-kOZ49CpaEFJT8_CI4oxkqgjslcwnA1zKA">
  7483. Hubzilla Users Support [[email protected]]
  7484. </a>
  7485. <div class="fs-8">
  7486. </div>
  7487. </div>
  7488.  
  7489. <div class="col-3 p-2">
  7490. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [[email protected]]">
  7491. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=HVZ50N0aybIfXSCM09Gnn8gN49-Hz2SPS3HOtqbNbdODH-V-BNhmdJM2v0QH56Zt1E98ZHQY3_jd5ID_aMTv1Q">
  7492. elmussol [[email protected]]
  7493. </a>
  7494. <div class="fs-8">
  7495. </div>
  7496. </div>
  7497.  
  7498. <div class="col-3 p-2">
  7499. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [[email protected]]">
  7500. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=zTgMRO7W4dTOPTumqaSYsPOIArDJ01ItgFPAG46B3gL-KieX63JEHvIapK6ibacjhGzqAaotTsnfymXayWIDzA">
  7501. </a>
  7502. <div class="fs-8">
  7503. </div>
  7504. </div>
  7505.  
  7506. <div class="col-3 p-2">
  7507. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [[email protected]]">
  7508. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=kFLk8T_j3wb9R6-MYLMF-49CjvBnh2LADtbX6r0Yob9MN3I5OzmwdIGAt99cQTmtRLFBWgUkzPc5tcI5fLSE1A">
  7509. Witcraft (Hubzilla) [[email protected]]
  7510. </a>
  7511. <div class="fs-8">
  7512. </div>
  7513. </div>
  7514.  
  7515. <div class="col-3 p-2">
  7516. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [[email protected]]">
  7517. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=Sv04KIQ2ykX1pj5eFt3YtQwzYHv5wKc-yDgDRNI057BCWgJx4N9T__8qqf3XRxwX1ObRzkLlulsItOCedma3OA">
  7518. Hubzilla Statistics [[email protected]]
  7519. </a>
  7520. <div class="fs-8">
  7521. </div>
  7522. </div>
  7523.  
  7524. <div class="col-3 p-2">
  7525. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [[email protected]]">
  7526. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Flegal.social%2Fusers%2Fopenjur">
  7527. openJur [[email protected]]
  7528. </a>
  7529. <div class="fs-8">
  7530. </div>
  7531. </div>
  7532.  
  7533. <div class="col-3 p-2">
  7534. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [[email protected]]">
  7535. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Ficeshrimp.de%2Fusers%2Fa1jiwi9elo1d4ozz">
  7536. Samuel Mumm [[email protected]]
  7537. </a>
  7538. <div class="fs-8">
  7539. </div>
  7540. </div>
  7541.  
  7542. <div class="col-3 p-2">
  7543. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [[email protected]]">
  7544. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=oy20JjL8zP9bfvsOuYHhiu7WgIosbDYslpSAbCq0QnUEOXxXDaMDxcub7zai0W2GkuEuCQwiInmjvSChAmmMVg">
  7545. NorVegan [[email protected]]
  7546. </a>
  7547. <div class="fs-8">
  7548. </div>
  7549. </div>
  7550.  
  7551. <div class="col-3 p-2">
  7552. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [[email protected]]">
  7553. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=qCvZC92AvgH6B3y225uO5PwQsYEZWPFR8grRaD4ad8pCpxUyuD3LOJgAN7TgZzy3BcArp0aFlttem1pAwyhYKA">
  7554. *_jayrope [[email protected]]
  7555. </a>
  7556. <div class="fs-8">
  7557. </div>
  7558. </div>
  7559.  
  7560. <div class="col-3 p-2">
  7561. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [[email protected]]">
  7562. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmuenster.im%2Fusers%2Ftylers">
  7563. Wild auf Anfrage [[email protected]]
  7564. </a>
  7565. <div class="fs-8">
  7566. </div>
  7567. </div>
  7568.  
  7569. <div class="col-3 p-2">
  7570. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [[email protected]]">
  7571. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fanonsys.net%2Fprofile%2Ftux">
  7572. Tuxi ⁂ [[email protected]]
  7573. </a>
  7574. <div class="fs-8">
  7575. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  7576. </div>
  7577. </div>
  7578.  
  7579. <div class="col-3 p-2">
  7580. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [[email protected]]">
  7581. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.fedcast.ch%2Fusers%2FHiker">
  7582. </a>
  7583. <div class="fs-8">
  7584. </div>
  7585. </div>
  7586.  
  7587. <div class="col-3 p-2">
  7588. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [[email protected]]">
  7589. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmastodon.social%2Fusers%2FNitrumRider">
  7590. NitrumRider [[email protected]]
  7591. </a>
  7592. <div class="fs-8">
  7593. </div>
  7594. </div>
  7595.  
  7596. <div class="col-3 p-2">
  7597. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [[email protected]]">
  7598. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw">
  7599. Stefan Haydn [[email protected]]
  7600. </a>
  7601. <div class="fs-8">
  7602. </div>
  7603. </div>
  7604.  
  7605. <div class="col-3 p-2">
  7606. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [[email protected]]">
  7607. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmetalhead.club%2Fusers%2Fjaecds">
  7608. </a>
  7609. <div class="fs-8">
  7610. </div>
  7611. </div>
  7612.  
  7613. <div class="col-3 p-2">
  7614. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [[email protected]]">
  7615. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.heise.de%2Fusers%2Fheiseonline_TopNews">
  7616. heise online Top News [[email protected]]
  7617. </a>
  7618. <div class="fs-8">
  7619. </div>
  7620. </div>
  7621.  
  7622. <div class="col-3 p-2">
  7623. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [[email protected]]">
  7624. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=-Jl9KXiXojRXwLhVC8gGOJi0ewV00WjLU9i-C7dJGPcHmUzfpEOzTF6Ks0p28JRKpgURH-8p_lqxwr15T5Uthw">
  7625. M. Dent [[email protected]]
  7626. </a>
  7627. <div class="fs-8">
  7628. </div>
  7629. </div>
  7630.  
  7631. <div class="col-3 p-2">
  7632. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [[email protected]]">
  7633. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fsocial.wikimedia.de%2Fusers%2FwikimediaDE">
  7634. wikimediaDE [[email protected]]
  7635. </a>
  7636. <div class="fs-8">
  7637. </div>
  7638. </div>
  7639.  
  7640. <div class="col-3 p-2">
  7641. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [[email protected]]">
  7642. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Floma.ml%2Fprofile%2Fsammumm">
  7643. Samuel Mumm [[email protected]]
  7644. </a>
  7645. <div class="fs-8">
  7646. </div>
  7647. </div>
  7648.  
  7649. <div class="col-3 p-2">
  7650. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [[email protected]]">
  7651. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=https%3A%2F%2Fmoppels.bar%2Fusers%2F98xzvtxs95">
  7652. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [[email protected]]
  7653. </a>
  7654. <div class="fs-8">
  7655. </div>
  7656. </div>
  7657.  
  7658. <div class="col-3 p-2">
  7659. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [[email protected]]">
  7660. <a class="btn fw-bold fs-7 text-body-secondary text-truncate w-100 p-0" href="https://hub.hubzilla.hu/chanview?f=&hash=goqXyPxSrxHTZQMzve05xd0CYgyw3ct-fDJf9Rl0PbU-zxUs8JZY6vXgNQi9nuE-Skf5W78BlAmd30czD6z9Ig">
  7661. zotlabs.org | Hubzilla Development [[email protected]]
  7662. </a>
  7663. <div class="fs-8">
  7664. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  7665. </div>
  7666. </div>
  7667.  
  7668. </div>
  7669. <!-- /.users-list -->
  7670. </div>
  7671. <!-- /.card-body -->
  7672. <div class="card-footer text-center">
  7673. <a href="viewconnections/pepecyb"
  7674. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  7675. </div>
  7676. <!-- /.card-footer -->
  7677. </div>
  7678.  
  7679.  
  7680. <div id="pmenu-2" class="pmenu card mb-3">
  7681. <div class="card-body">
  7682. <ul
  7683. class="pmenu-body nav nav-pills flex-column">
  7684. <li id="pmenu-item-3" class="nav-item pmenu-item">
  7685. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  7686. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  7687. </li>
  7688. <li id="pmenu-item-9" class="nav-item pmenu-item">
  7689. <a href="https://hzhelp.pepecyb.hu/"
  7690. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  7691. </li>
  7692. </ul>
  7693. <div class="pmenu-end"></div>
  7694. </div>
  7695. </div>
  7696.  
  7697.  
  7698. <script>
  7699.  
  7700. function toggle_posted_date_button() {
  7701. if($(\'#posted-date-dropdown\').is(\':visible\')) {
  7702. $(\'#posted-date-icon\').removeClass(\'bi-chevron-up\');
  7703. $(\'#posted-date-icon\').addClass(\'bi-chevron-down\');
  7704. $(\'#posted-date-dropdown\').hide();
  7705. }
  7706. else {
  7707. $(\'#posted-date-icon\').addClass(\'bi-chevron-up\');
  7708. $(\'#posted-date-icon\').removeClass(\'bi-chevron-down\');
  7709. $(\'#posted-date-dropdown\').show();
  7710. }
  7711. }
  7712. </script>
  7713.  
  7714.  
  7715. <div id="datebrowse-sidebar" class="card mb-3">
  7716. <div class="card-header">
  7717. Archives
  7718. </div>
  7719. <div class="card-body">
  7720. <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
  7721. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  7722. <li class="nav-item" id="posted-date-selector-year-2025">
  7723. <a class="nav-link" href="#" onclick="openClose(\'posted-date-selector-2025\'); return false;">2025</a>
  7724. </li>
  7725. <div id="posted-date-selector-2025" style="display: none;">
  7726. <ul class="posted-date-selector-months nav nav-pills flex-column">
  7727. <li class="nav-item">
  7728. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31\'); return false;">March</a>
  7729. </li>
  7730. <li class="nav-item">
  7731. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28\'); return false;">February</a>
  7732. </li>
  7733. <li class="nav-item">
  7734. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31\'); return false;">January</a>
  7735. </li>
  7736. </ul>
  7737. </div>
  7738. <li class="nav-item" id="posted-date-selector-year-2024">
  7739. <a class="nav-link" href="#" onclick="openClose(\'posted-date-selector-2024\'); return false;">2024</a>
  7740. </li>
  7741. <div id="posted-date-selector-2024" style="display: none;">
  7742. <ul class="posted-date-selector-months nav nav-pills flex-column">
  7743. <li class="nav-item">
  7744. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31\'); return false;">December</a>
  7745. </li>
  7746. <li class="nav-item">
  7747. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30\'); return false;">November</a>
  7748. </li>
  7749. <li class="nav-item">
  7750. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31\'); return false;">October</a>
  7751. </li>
  7752. <li class="nav-item">
  7753. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30\'); return false;">September</a>
  7754. </li>
  7755. <li class="nav-item">
  7756. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31\'); return false;">August</a>
  7757. </li>
  7758. <li class="nav-item">
  7759. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31\'); return false;">July</a>
  7760. </li>
  7761. <li class="nav-item">
  7762. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30\'); return false;">June</a>
  7763. </li>
  7764. <li class="nav-item">
  7765. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31\'); return false;">May</a>
  7766. </li>
  7767. <li class="nav-item">
  7768. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30\'); return false;">April</a>
  7769. </li>
  7770. <li class="nav-item">
  7771. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31\'); return false;">March</a>
  7772. </li>
  7773. </ul>
  7774. </div>
  7775. </ul>
  7776. </div>
  7777. </div>
  7778.  
  7779. <div id="categories-sidebar" class="card mb-3">
  7780. <div class="card-header">
  7781. Categories
  7782. </div>
  7783. <div class="card-body">
  7784. <div id="categories-sidebar-desc"></div>
  7785.  
  7786. <ul class="nav nav-pills flex-column">
  7787. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  7788. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  7789. class="nav-link">Dampfdruck-Presse</a></li>
  7790. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  7791. class="nav-link">Dampfen</a></li>
  7792. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  7793. class="nav-link">Dokumentation</a></li>
  7794. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  7795. class="nav-link">Fediverse</a></li>
  7796. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  7797. class="nav-link">Firefish</a></li>
  7798. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  7799. class="nav-link">Friendica</a></li>
  7800. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  7801. class="nav-link">Gastbeitrag</a></li>
  7802. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  7803. class="nav-link">go</a></li>
  7804. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  7805. class="nav-link">golang</a></li>
  7806. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  7807. class="nav-link">Hilfe</a></li>
  7808. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  7809. class="nav-link">Hubzilla</a></li>
  7810. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  7811. class="nav-link">Hubzilla-Häppchen</a></li>
  7812. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  7813. class="nav-link">Hubzilla-Hilfe</a></li>
  7814. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  7815. class="nav-link">Hubzillahäppchen</a></li>
  7816. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  7817. class="nav-link">Kommentar</a></li>
  7818. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  7819. class="nav-link">Pepes Microblog</a></li>
  7820. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  7821. class="nav-link">Pfrunzlers Weekly</a></li>
  7822. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  7823. class="nav-link">Politik</a></li>
  7824. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  7825. class="nav-link">Support</a></li>
  7826. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  7827. class="nav-link">WHO</a></li>
  7828. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  7829. class="nav-link">Wochenblick</a></li>
  7830. </ul>
  7831. </div>
  7832. </div>
  7833.  
  7834. <div class="tagblock widget"><h3>Tags</h3><div class="tags" align="center"><span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediMeta" class="tag2">CWFediMeta</a>
  7835. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  7836. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  7837. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  7838. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  7839. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  7840. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  7841. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  7842. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  7843. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  7844. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  7845. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  7846. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  7847. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  7848. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  7849. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  7850. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  7851. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  7852. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  7853. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  7854. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  7855. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  7856. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  7857. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  7858. </div></div>
  7859.  
  7860. </div>
  7861. </div>
  7862. </div>
  7863. </div>
  7864. </div>
  7865. </div>
  7866. </div>
  7867. </main>
  7868. <!-- /.content-wrapper -->
  7869.  
  7870. </div>
  7871. <!-- ./wrapper -->
  7872. <script>
  7873. // Color Mode Toggler
  7874. (() => {
  7875. "use strict";
  7876.  
  7877. const storedTheme = localStorage.getItem("theme");
  7878.  
  7879. const getPreferredTheme = () => {
  7880. if (storedTheme) {
  7881. return storedTheme;
  7882. }
  7883.  
  7884. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  7885. "dark" :
  7886. "light";
  7887. };
  7888.  
  7889. const setTheme = function(theme) {
  7890. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  7891. document.documentElement.setAttribute("data-bs-theme", "dark");
  7892. } else {
  7893. document.documentElement.setAttribute("data-bs-theme", theme);
  7894. }
  7895. };
  7896.  
  7897. const showActiveTheme = (theme, focus = false) => {
  7898. const themeSwitcher = document.querySelector("#bd-theme");
  7899.  
  7900. if (!themeSwitcher) {
  7901. return;
  7902. }
  7903.  
  7904. const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  7905. const inputToCheck = document.querySelector(`#bd-theme input[data-bs-theme-value="${theme}"]`);
  7906.  
  7907. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  7908. element.classList.remove("active");
  7909. element.setAttribute("aria-pressed", "false");
  7910. }
  7911.  
  7912. btnToActive.classList.add("active");
  7913. btnToActive.setAttribute("aria-pressed", "true");
  7914.  
  7915. // Update the checked state of the radio button
  7916. if (inputToCheck) {
  7917. inputToCheck.checked = true;
  7918. }
  7919.  
  7920. if (focus) {
  7921. btnToActive.focus();
  7922. }
  7923. };
  7924.  
  7925. setTheme(getPreferredTheme());
  7926.  
  7927. window
  7928. .matchMedia("(prefers-color-scheme: dark)")
  7929. .addEventListener("change", () => {
  7930. if (storedTheme !== "light" || storedTheme !== "dark") {
  7931. setTheme(getPreferredTheme());
  7932. }
  7933. });
  7934.  
  7935. window.addEventListener("DOMContentLoaded", () => {
  7936. showActiveTheme(getPreferredTheme());
  7937.  
  7938. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  7939. toggle.addEventListener("click", () => {
  7940. const theme = toggle.getAttribute("data-bs-theme-value");
  7941. localStorage.setItem("theme", theme);
  7942. setTheme(theme);
  7943. showActiveTheme(theme, true);
  7944. });
  7945. }
  7946. });
  7947. })();
  7948. </script>
  7949. <script>
  7950. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  7951. const Default = {
  7952. scrollbarTheme: "os-theme-light",
  7953. scrollbarAutoHide: "leave",
  7954. scrollbarClickScroll: true,
  7955. };
  7956. document.addEventListener("DOMContentLoaded", function() {
  7957. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  7958. if (
  7959. sidebarWrapper &&
  7960. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  7961. ) {
  7962. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  7963. scrollbars: {
  7964. theme: Default.scrollbarTheme,
  7965. autoHide: Default.scrollbarAutoHide,
  7966. clickScroll: Default.scrollbarClickScroll,
  7967. },
  7968. });
  7969. }
  7970. });
  7971. </script> <!--end::OverlayScrollbars Configure-->
  7972. </body>
  7973.  
  7974. </html>
  7975. ',
  7976. 'data' => NULL,
  7977. 'meta' => NULL,
  7978. 'valid' => false,
  7979. 'deleted' => false,
  7980. 'portable_id' => NULL,
  7981. 'id' => '',
  7982. 'parent_id' => '',
  7983. 'type' => '',
  7984. 'actor' => NULL,
  7985. 'obj' => NULL,
  7986. 'tgt' => NULL,
  7987. 'origin' => NULL,
  7988. 'owner' => NULL,
  7989. 'signer' => NULL,
  7990. 'sig' => NULL,
  7991. 'sigok' => false,
  7992. 'recips' => NULL,
  7993. 'raw_recips' => NULL,
  7994. 'saved_recips' => NULL,
  7995. ))
  7996.  
  7997.  
Add Comment
Please, Sign In to add comment