pepecyb01

complete emoji-posting

Mar 15th, 2025
8
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) ⁂ ⚝ - pepecyb@hub.hubzilla.hu</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">pepecyb@hub.hubzilla.hu</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">sh@hub.hayfidelity.de</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">pepecyb@hub.hubzilla.hu</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 [blingbling@federation.network]">
  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 [blingbling@federation.network]
  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 [loops@pixelfed.social]">
  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. loops [loops@pixelfed.social]
  1786. </a>
  1787. <div class="fs-8">
  1788. </div>
  1789. </div>
  1790.  
  1791. <div class="col-3 p-2">
  1792. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [thomas@caselibre.fr]">
  1793. <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">
  1794. Papa Dragon [thomas@caselibre.fr]
  1795. </a>
  1796. <div class="fs-8">
  1797. </div>
  1798. </div>
  1799.  
  1800. <div class="col-3 p-2">
  1801. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [tigerchen@klacker.org]">
  1802. <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">
  1803. Tiger_micha [tigerchen@klacker.org]
  1804. </a>
  1805. <div class="fs-8">
  1806. </div>
  1807. </div>
  1808.  
  1809. <div class="col-3 p-2">
  1810. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [mumm@wizard.casa]">
  1811. <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">
  1812. Samuel Mumm [mumm@wizard.casa]
  1813. </a>
  1814. <div class="fs-8">
  1815. </div>
  1816. </div>
  1817.  
  1818. <div class="col-3 p-2">
  1819. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [grischa@procial.tchncs.de]">
  1820. <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">
  1821. grischa [grischa@procial.tchncs.de]
  1822. </a>
  1823. <div class="fs-8">
  1824. </div>
  1825. </div>
  1826.  
  1827. <div class="col-3 p-2">
  1828. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [steffen@www.top-netz.eu]">
  1829. <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">
  1830. Steffen [steffen@www.top-netz.eu]
  1831. </a>
  1832. <div class="fs-8">
  1833. </div>
  1834. </div>
  1835.  
  1836. <div class="col-3 p-2">
  1837. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [ulrich@hub.netzgemeinde.eu]">
  1838. <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">
  1839. Ulrich (Hubzilla) [ulrich@hub.netzgemeinde.eu]
  1840. </a>
  1841. <div class="fs-8">
  1842. </div>
  1843. </div>
  1844.  
  1845. <div class="col-3 p-2">
  1846. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [s_hentzschel@social.agenedia.com]">
  1847. <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">
  1848. Sören Hentzschel 🦊 [s_hentzschel@social.agenedia.com]
  1849. </a>
  1850. <div class="fs-8">
  1851. </div>
  1852. </div>
  1853.  
  1854. <div class="col-3 p-2">
  1855. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [Asterix_Archiv@troet.cafe]">
  1856. <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">
  1857. Asterix Archiv - Comedix.de 💎 [Asterix_Archiv@troet.cafe]
  1858. </a>
  1859. <div class="fs-8">
  1860. </div>
  1861. </div>
  1862.  
  1863. <div class="col-3 p-2">
  1864. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [Em0nM4stodon@infosec.exchange]">
  1865. <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">
  1866. Em :official_verified: [Em0nM4stodon@infosec.exchange]
  1867. </a>
  1868. <div class="fs-8">
  1869. </div>
  1870. </div>
  1871.  
  1872. <div class="col-3 p-2">
  1873. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [doris@www.top-netz.eu]">
  1874. <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">
  1875. Doris [doris@www.top-netz.eu]
  1876. </a>
  1877. <div class="fs-8">
  1878. </div>
  1879. </div>
  1880.  
  1881. <div class="col-3 p-2">
  1882. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [holarse@mastodon.social]">
  1883. <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">
  1884. Holarse - Spielen unter Linux [holarse@mastodon.social]
  1885. </a>
  1886. <div class="fs-8">
  1887. </div>
  1888. </div>
  1889.  
  1890. <div class="col-3 p-2">
  1891. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [chris@im.allmendenetz.de]">
  1892. <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">
  1893. 𝓒𝓱𝓻𝓲𝓼 [chris@im.allmendenetz.de]
  1894. </a>
  1895. <div class="fs-8">
  1896. </div>
  1897. </div>
  1898.  
  1899. <div class="col-3 p-2">
  1900. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [Umweltbundesamt@social.bund.de]">
  1901. <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">
  1902. Umweltbundesamt [Umweltbundesamt@social.bund.de]
  1903. </a>
  1904. <div class="fs-8">
  1905. </div>
  1906. </div>
  1907.  
  1908. <div class="col-3 p-2">
  1909. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [hubzillauserssp@zotum.net]">
  1910. <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">
  1911. Hubzilla Users Support [hubzillauserssp@zotum.net]
  1912. </a>
  1913. <div class="fs-8">
  1914. </div>
  1915. </div>
  1916.  
  1917. <div class="col-3 p-2">
  1918. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [elmussol@streams.elsmussols.net]">
  1919. <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">
  1920. elmussol [elmussol@streams.elsmussols.net]
  1921. </a>
  1922. <div class="fs-8">
  1923. </div>
  1924. </div>
  1925.  
  1926. <div class="col-3 p-2">
  1927. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [sk@hub.utsukta.org]">
  1928. <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">
  1929. SK [sk@hub.utsukta.org]
  1930. </a>
  1931. <div class="fs-8">
  1932. </div>
  1933. </div>
  1934.  
  1935. <div class="col-3 p-2">
  1936. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [witcraft@hub.hubzilla.de]">
  1937. <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">
  1938. Witcraft (Hubzilla) [witcraft@hub.hubzilla.de]
  1939. </a>
  1940. <div class="fs-8">
  1941. </div>
  1942. </div>
  1943.  
  1944. <div class="col-3 p-2">
  1945. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [hubzilla@libera.site]">
  1946. <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">
  1947. Hubzilla Statistics [hubzilla@libera.site]
  1948. </a>
  1949. <div class="fs-8">
  1950. </div>
  1951. </div>
  1952.  
  1953. <div class="col-3 p-2">
  1954. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [openjur@legal.social]">
  1955. <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">
  1956. openJur [openjur@legal.social]
  1957. </a>
  1958. <div class="fs-8">
  1959. </div>
  1960. </div>
  1961.  
  1962. <div class="col-3 p-2">
  1963. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [s_mumm@iceshrimp.de]">
  1964. <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">
  1965. Samuel Mumm [s_mumm@iceshrimp.de]
  1966. </a>
  1967. <div class="fs-8">
  1968. </div>
  1969. </div>
  1970.  
  1971. <div class="col-3 p-2">
  1972. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [norvegan@zotum.net]">
  1973. <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">
  1974. NorVegan [norvegan@zotum.net]
  1975. </a>
  1976. <div class="fs-8">
  1977. </div>
  1978. </div>
  1979.  
  1980. <div class="col-3 p-2">
  1981. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [jrp@hub.kliklak.net]">
  1982. <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">
  1983. *_jayrope [jrp@hub.kliklak.net]
  1984. </a>
  1985. <div class="fs-8">
  1986. </div>
  1987. </div>
  1988.  
  1989. <div class="col-3 p-2">
  1990. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [tylers@muenster.im]">
  1991. <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">
  1992. Wild auf Anfrage [tylers@muenster.im]
  1993. </a>
  1994. <div class="fs-8">
  1995. </div>
  1996. </div>
  1997.  
  1998. <div class="col-3 p-2">
  1999. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [tux@anonsys.net]">
  2000. <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">
  2001. Tuxi ⁂ [tux@anonsys.net]
  2002. </a>
  2003. <div class="fs-8">
  2004. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  2005. </div>
  2006. </div>
  2007.  
  2008. <div class="col-3 p-2">
  2009. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [hiker@social.fedcast.ch]">
  2010. <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">
  2011. Hiker [hiker@social.fedcast.ch]
  2012. </a>
  2013. <div class="fs-8">
  2014. </div>
  2015. </div>
  2016.  
  2017. <div class="col-3 p-2">
  2018. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [NitrumRider@mastodon.social]">
  2019. <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">
  2020. NitrumRider [NitrumRider@mastodon.social]
  2021. </a>
  2022. <div class="fs-8">
  2023. </div>
  2024. </div>
  2025.  
  2026. <div class="col-3 p-2">
  2027. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [sh@hub.hayfidelity.de]">
  2028. <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">
  2029. Stefan Haydn [sh@hub.hayfidelity.de]
  2030. </a>
  2031. <div class="fs-8">
  2032. </div>
  2033. </div>
  2034.  
  2035. <div class="col-3 p-2">
  2036. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [jaecds@metalhead.club]">
  2037. <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">
  2038. JaeCdS [jaecds@metalhead.club]
  2039. </a>
  2040. <div class="fs-8">
  2041. </div>
  2042. </div>
  2043.  
  2044. <div class="col-3 p-2">
  2045. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [heiseonline_TopNews@social.heise.de]">
  2046. <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">
  2047. heise online Top News [heiseonline_TopNews@social.heise.de]
  2048. </a>
  2049. <div class="fs-8">
  2050. </div>
  2051. </div>
  2052.  
  2053. <div class="col-3 p-2">
  2054. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [dm42@my.hosted.social]">
  2055. <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">
  2056. M. Dent [dm42@my.hosted.social]
  2057. </a>
  2058. <div class="fs-8">
  2059. </div>
  2060. </div>
  2061.  
  2062. <div class="col-3 p-2">
  2063. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [wikimediaDE@social.wikimedia.de]">
  2064. <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">
  2065. wikimediaDE [wikimediaDE@social.wikimedia.de]
  2066. </a>
  2067. <div class="fs-8">
  2068. </div>
  2069. </div>
  2070.  
  2071. <div class="col-3 p-2">
  2072. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [sammumm@loma.ml]">
  2073. <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">
  2074. Samuel Mumm [sammumm@loma.ml]
  2075. </a>
  2076. <div class="fs-8">
  2077. </div>
  2078. </div>
  2079.  
  2080. <div class="col-3 p-2">
  2081. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [Carlos@moppels.bar]">
  2082. <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">
  2083. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [Carlos@moppels.bar]
  2084. </a>
  2085. <div class="fs-8">
  2086. </div>
  2087. </div>
  2088.  
  2089. <div class="col-3 p-2">
  2090. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [hubzilla-development@zotlabs.org]">
  2091. <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">
  2092. zotlabs.org | Hubzilla Development [hubzilla-development@zotlabs.org]
  2093. </a>
  2094. <div class="fs-8">
  2095. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  2096. </div>
  2097. </div>
  2098.  
  2099. </div>
  2100. <!-- /.users-list -->
  2101. </div>
  2102. <!-- /.card-body -->
  2103. <div class="card-footer text-center">
  2104. <a href="viewconnections/pepecyb"
  2105. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  2106. </div>
  2107. <!-- /.card-footer -->
  2108. </div>
  2109.  
  2110.  
  2111. <div id="pmenu-2" class="pmenu card mb-3">
  2112. <div class="card-body">
  2113. <ul
  2114. class="pmenu-body nav nav-pills flex-column">
  2115. <li id="pmenu-item-3" class="nav-item pmenu-item">
  2116. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  2117. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  2118. </li>
  2119. <li id="pmenu-item-9" class="nav-item pmenu-item">
  2120. <a href="https://hzhelp.pepecyb.hu/"
  2121. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  2122. </li>
  2123. </ul>
  2124. <div class="pmenu-end"></div>
  2125. </div>
  2126. </div>
  2127.  
  2128.  
  2129. <script>
  2130.  
  2131. function toggle_posted_date_button() {
  2132. if($('#posted-date-dropdown').is(':visible')) {
  2133. $('#posted-date-icon').removeClass('bi-chevron-up');
  2134. $('#posted-date-icon').addClass('bi-chevron-down');
  2135. $('#posted-date-dropdown').hide();
  2136. }
  2137. else {
  2138. $('#posted-date-icon').addClass('bi-chevron-up');
  2139. $('#posted-date-icon').removeClass('bi-chevron-down');
  2140. $('#posted-date-dropdown').show();
  2141. }
  2142. }
  2143. </script>
  2144.  
  2145.  
  2146. <div id="datebrowse-sidebar" class="card mb-3">
  2147. <div class="card-header">
  2148. Archives
  2149. </div>
  2150. <div class="card-body">
  2151. <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
  2152. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  2153. <li class="nav-item" id="posted-date-selector-year-2025">
  2154. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2025'); return false;">2025</a>
  2155. </li>
  2156. <div id="posted-date-selector-2025" style="display: none;">
  2157. <ul class="posted-date-selector-months nav nav-pills flex-column">
  2158. <li class="nav-item">
  2159. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31'); return false;">March</a>
  2160. </li>
  2161. <li class="nav-item">
  2162. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28'); return false;">February</a>
  2163. </li>
  2164. <li class="nav-item">
  2165. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31'); return false;">January</a>
  2166. </li>
  2167. </ul>
  2168. </div>
  2169. <li class="nav-item" id="posted-date-selector-year-2024">
  2170. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2024'); return false;">2024</a>
  2171. </li>
  2172. <div id="posted-date-selector-2024" style="display: none;">
  2173. <ul class="posted-date-selector-months nav nav-pills flex-column">
  2174. <li class="nav-item">
  2175. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31'); return false;">December</a>
  2176. </li>
  2177. <li class="nav-item">
  2178. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30'); return false;">November</a>
  2179. </li>
  2180. <li class="nav-item">
  2181. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31'); return false;">October</a>
  2182. </li>
  2183. <li class="nav-item">
  2184. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30'); return false;">September</a>
  2185. </li>
  2186. <li class="nav-item">
  2187. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31'); return false;">August</a>
  2188. </li>
  2189. <li class="nav-item">
  2190. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31'); return false;">July</a>
  2191. </li>
  2192. <li class="nav-item">
  2193. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30'); return false;">June</a>
  2194. </li>
  2195. <li class="nav-item">
  2196. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31'); return false;">May</a>
  2197. </li>
  2198. <li class="nav-item">
  2199. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30'); return false;">April</a>
  2200. </li>
  2201. <li class="nav-item">
  2202. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31'); return false;">March</a>
  2203. </li>
  2204. </ul>
  2205. </div>
  2206. </ul>
  2207. </div>
  2208. </div>
  2209.  
  2210. <div id="categories-sidebar" class="card mb-3">
  2211. <div class="card-header">
  2212. Categories
  2213. </div>
  2214. <div class="card-body">
  2215. <div id="categories-sidebar-desc"></div>
  2216.  
  2217. <ul class="nav nav-pills flex-column">
  2218. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  2219. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  2220. class="nav-link">Dampfdruck-Presse</a></li>
  2221. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  2222. class="nav-link">Dampfen</a></li>
  2223. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  2224. class="nav-link">Dokumentation</a></li>
  2225. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  2226. class="nav-link">Fediverse</a></li>
  2227. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  2228. class="nav-link">Firefish</a></li>
  2229. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  2230. class="nav-link">Friendica</a></li>
  2231. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  2232. class="nav-link">Gastbeitrag</a></li>
  2233. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  2234. class="nav-link">go</a></li>
  2235. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  2236. class="nav-link">golang</a></li>
  2237. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  2238. class="nav-link">Hilfe</a></li>
  2239. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  2240. class="nav-link">Hubzilla</a></li>
  2241. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  2242. class="nav-link">Hubzilla-Häppchen</a></li>
  2243. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  2244. class="nav-link">Hubzilla-Hilfe</a></li>
  2245. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  2246. class="nav-link">Hubzillahäppchen</a></li>
  2247. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  2248. class="nav-link">Kommentar</a></li>
  2249. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  2250. class="nav-link">Pepes Microblog</a></li>
  2251. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  2252. class="nav-link">Pfrunzlers Weekly</a></li>
  2253. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  2254. class="nav-link">Politik</a></li>
  2255. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  2256. class="nav-link">Support</a></li>
  2257. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  2258. class="nav-link">WHO</a></li>
  2259. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  2260. class="nav-link">Wochenblick</a></li>
  2261. </ul>
  2262. </div>
  2263. </div>
  2264.  
  2265. <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>
  2266. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  2267. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  2268. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  2269. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  2270. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  2271. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  2272. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  2273. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  2274. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  2275. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  2276. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  2277. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  2278. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  2279. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  2280. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  2281. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  2282. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  2283. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  2284. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  2285. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  2286. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  2287. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  2288. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  2289. </div></div>
  2290.  
  2291. </div>
  2292. </div>
  2293. </div>
  2294. </div>
  2295. </div>
  2296. </div>
  2297. </div>
  2298. </main>
  2299. <!-- /.content-wrapper -->
  2300.  
  2301. </div>
  2302. <!-- ./wrapper -->
  2303. <script>
  2304. // Color Mode Toggler
  2305. (() => {
  2306. "use strict";
  2307.  
  2308. const storedTheme = localStorage.getItem("theme");
  2309.  
  2310. const getPreferredTheme = () => {
  2311. if (storedTheme) {
  2312. return storedTheme;
  2313. }
  2314.  
  2315. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  2316. "dark" :
  2317. "light";
  2318. };
  2319.  
  2320. const setTheme = function(theme) {
  2321. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  2322. document.documentElement.setAttribute("data-bs-theme", "dark");
  2323. } else {
  2324. document.documentElement.setAttribute("data-bs-theme", theme);
  2325. }
  2326. };
  2327.  
  2328. const showActiveTheme = (theme, focus = false) => {
  2329. const themeSwitcher = document.querySelector("#bd-theme");
  2330.  
  2331. if (!themeSwitcher) {
  2332. return;
  2333. }
  2334.  
  2335. const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  2336. const inputToCheck = document.querySelector(`#bd-theme input[data-bs-theme-value="${theme}"]`);
  2337.  
  2338. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  2339. element.classList.remove("active");
  2340. element.setAttribute("aria-pressed", "false");
  2341. }
  2342.  
  2343. btnToActive.classList.add("active");
  2344. btnToActive.setAttribute("aria-pressed", "true");
  2345.  
  2346. // Update the checked state of the radio button
  2347. if (inputToCheck) {
  2348. inputToCheck.checked = true;
  2349. }
  2350.  
  2351. if (focus) {
  2352. btnToActive.focus();
  2353. }
  2354. };
  2355.  
  2356. setTheme(getPreferredTheme());
  2357.  
  2358. window
  2359. .matchMedia("(prefers-color-scheme: dark)")
  2360. .addEventListener("change", () => {
  2361. if (storedTheme !== "light" || storedTheme !== "dark") {
  2362. setTheme(getPreferredTheme());
  2363. }
  2364. });
  2365.  
  2366. window.addEventListener("DOMContentLoaded", () => {
  2367. showActiveTheme(getPreferredTheme());
  2368.  
  2369. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  2370. toggle.addEventListener("click", () => {
  2371. const theme = toggle.getAttribute("data-bs-theme-value");
  2372. localStorage.setItem("theme", theme);
  2373. setTheme(theme);
  2374. showActiveTheme(theme, true);
  2375. });
  2376. }
  2377. });
  2378. })();
  2379. </script>
  2380. <script>
  2381. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  2382. const Default = {
  2383. scrollbarTheme: "os-theme-light",
  2384. scrollbarAutoHide: "leave",
  2385. scrollbarClickScroll: true,
  2386. };
  2387. document.addEventListener("DOMContentLoaded", function() {
  2388. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  2389. if (
  2390. sidebarWrapper &&
  2391. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  2392. ) {
  2393. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  2394. scrollbars: {
  2395. theme: Default.scrollbarTheme,
  2396. autoHide: Default.scrollbarAutoHide,
  2397. clickScroll: Default.scrollbarClickScroll,
  2398. },
  2399. });
  2400. }
  2401. });
  2402. </script> <!--end::OverlayScrollbars Configure-->
  2403. </body>
  2404.  
  2405. </html>
  2406.  
  2407.  
  2408. verify returns: Array
  2409. (
  2410. [signer] =>
  2411. [portable_id] =>
  2412. [header_signed] =>
  2413. [header_valid] =>
  2414. [content_signed] =>
  2415. [content_valid] =>
  2416. )
  2417.  
  2418. <!DOCTYPE html>
  2419. <html lang="en">
  2420.  
  2421. <head>
  2422. <meta charset="utf-8">
  2423. <meta name="viewport" content="width=device-width, initial-scale=1">
  2424. <title> - Der Pepe (Hubzilla) ⁂ ⚝ - pepecyb@hub.hubzilla.hu</title>
  2425. <script>
  2426. var baseurl = "https://hub.hubzilla.hu";
  2427. </script>
  2428. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  2429. <base href="https://hub.hubzilla.hu/" />
  2430. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0" />
  2431.  
  2432. <meta name="application-name" content="hubzilla" />
  2433. <meta name="generator" content="hubzilla" />
  2434. <meta name="theme-color" content="" />
  2435.  
  2436. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/hilite/Text_Highlighter/sample.css?v=10.0.8" type="text/css" media="screen">
  2437. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/b2tbtn/view/css/b2tbtn.css?v=10.0.8" type="text/css" media="screen">
  2438. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/lib/photoswipe5/dist/photoswipe.css?v=10.0.8" type="text/css" media="screen">
  2439. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/view/css/gallery.css?v=10.0.8" type="text/css" media="screen">
  2440. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/jRange/jquery.range.css?v=10.0.8" type="text/css" media="screen">
  2441. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/conversation.css?v=10.0.8" type="text/css" media="screen">
  2442. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/widgets.css?v=10.0.8" type="text/css" media="screen">
  2443. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/colorbox.css?v=10.0.8" type="text/css" media="screen">
  2444. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/justifiedGallery/justifiedGallery.min.css?v=10.0.8" type="text/css" media="screen">
  2445. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.css?v=10.0.8" type="text/css" media="screen">
  2446. <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">
  2447. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.css?v=10.0.8" type="text/css" media="screen">
  2448. <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">
  2449. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/adminlte.css?v=10.0.8" type="text/css" media="screen">
  2450. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/bootstrap.min.css?v=10.0.8" type="text/css" media="screen">
  2451. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/overlayscrollbar.min.css?v=10.0.8" type="text/css" media="screen">
  2452. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/default.css?v=10.0.8" type="text/css" media="screen">
  2453. <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">
  2454.  
  2455. <script>
  2456.  
  2457. var aStr = {
  2458.  
  2459.  
  2460. 'delitem' : "Delete this item?",
  2461.  
  2462. 'itemdel' : "Item deleted",
  2463.  
  2464. 'comment' : "Comment",
  2465.  
  2466. 'showmore' : "show all",
  2467.  
  2468. 'showfewer' : "show less",
  2469.  
  2470. 'divgrowmore' : "expand",
  2471.  
  2472. 'divgrowless' : "collapse",
  2473.  
  2474. 'pwshort' : "Password too short",
  2475.  
  2476. 'pwnomatch' : "Passwords do not match",
  2477.  
  2478. 'everybody' : "everybody",
  2479.  
  2480. 'passphrase' : "Secret Passphrase",
  2481.  
  2482. 'passhint' : "Passphrase hint",
  2483.  
  2484. 'permschange' : "Notice: Permissions have changed but have not yet been submitted.",
  2485.  
  2486. 'closeAll' : "close all",
  2487.  
  2488. 'nothingnew' : "Nothing new here",
  2489.  
  2490. 'rating_desc' : "Rate This Channel (this is public)",
  2491.  
  2492. 'rating_val' : "Rating",
  2493.  
  2494. 'rating_text' : "Describe (optional)",
  2495.  
  2496. 'submit' : "Submit",
  2497.  
  2498. 'linkurl' : "Please enter a link URL",
  2499.  
  2500. 'leavethispage' : "Unsaved changes. Are you sure you wish to leave this page?",
  2501.  
  2502. 'location' : "Location",
  2503.  
  2504. 'lovely' : "lovely",
  2505.  
  2506. 'wonderful' : "wonderful",
  2507.  
  2508. 'fantastic' : "fantastic",
  2509.  
  2510. 'great' : "great",
  2511.  
  2512. 'nick_invld1' : "Your chosen nickname was either already taken or not valid. Please use our suggestion (",
  2513.  
  2514. 'nick_invld2' : ") or enter a new one.",
  2515.  
  2516. 'nick_valid' : "Thank you, this nickname is valid.",
  2517.  
  2518. 'name_empty' : "A channel name is required.",
  2519.  
  2520. 'name_ok1' : "This is a ",
  2521.  
  2522. 'name_ok2' : " channel name",
  2523.  
  2524. 'to_reply' : "Back to reply",
  2525.  
  2526. 'pinned' : "Pinned",
  2527.  
  2528. 'pin_item' : "Pin to the top",
  2529.  
  2530. 'unpin_item' : "Unpin from the top",
  2531.  
  2532.  
  2533. 'monthNames' : [
  2534. "January",
  2535. "February",
  2536. "March",
  2537. "April",
  2538. "May",
  2539. "June",
  2540. "July",
  2541. "August",
  2542. "September",
  2543. "October",
  2544. "November",
  2545. "December"
  2546. ],
  2547.  
  2548. 'monthNamesShort' : [
  2549. "Jan",
  2550. "Feb",
  2551. "Mar",
  2552. "Apr",
  2553. "May",
  2554. "Jun",
  2555. "Jul",
  2556. "Aug",
  2557. "Sep",
  2558. "Oct",
  2559. "Nov",
  2560. "Dec"
  2561. ],
  2562.  
  2563. 'dayNames' : [
  2564. "Sunday",
  2565. "Monday",
  2566. "Tuesday",
  2567. "Wednesday",
  2568. "Thursday",
  2569. "Friday",
  2570. "Saturday"
  2571. ],
  2572.  
  2573. 'dayNamesShort' : [
  2574. "Sun",
  2575. "Mon",
  2576. "Tue",
  2577. "Wed",
  2578. "Thu",
  2579. "Fri",
  2580. "Sat"
  2581. ],
  2582.  
  2583. 'today' : "today",
  2584.  
  2585. 'month' : "month",
  2586.  
  2587. 'week' : "week",
  2588.  
  2589. 'day' : "day",
  2590.  
  2591. 'allday' : "All day",
  2592.  
  2593.  
  2594. // mod cloud
  2595. 'download_info' : "Please stand by while your download is being prepared.",
  2596.  
  2597.  
  2598. // mod register
  2599. 'email_not_valid' : "Email address not valid",
  2600.  
  2601. 'email_required' : "Required"
  2602.  
  2603.  
  2604. };
  2605.  
  2606. </script>
  2607.  
  2608.  
  2609. <script src="https://hub.hubzilla.hu/view/js/jquery.js?v=10.0.8"></script>
  2610. <script src="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.js?v=10.0.8"></script>
  2611. <script src="https://hub.hubzilla.hu/library/justifiedGallery/jquery.justifiedGallery.min.js?v=10.0.8"></script>
  2612. <script src="https://hub.hubzilla.hu/library/sprintf.js/dist/sprintf.min.js?v=10.0.8"></script>
  2613. <script src="https://hub.hubzilla.hu/library/textcomplete/textcomplete.min.js?v=10.0.8"></script>
  2614. <script src="https://hub.hubzilla.hu/view/js/autocomplete.js?v=10.0.8"></script>
  2615. <script src="https://hub.hubzilla.hu/library/readmore.js/readmore.js?v=10.0.8"></script>
  2616. <script src="https://hub.hubzilla.hu/library/sjcl/sjcl.js?v=10.0.8"></script>
  2617. <script src="https://hub.hubzilla.hu/library/sodium-plus/dist/sodium-plus.min.js?v=10.0.8"></script>
  2618. <script src="https://hub.hubzilla.hu/view/js/acl.js?v=10.0.8"></script>
  2619. <script src="https://hub.hubzilla.hu/view/js/webtoolkit.base64.js?v=10.0.8"></script>
  2620. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  2621. <script src="https://hub.hubzilla.hu/view/js/crypto.js?v=10.0.8"></script>
  2622. <script src="https://hub.hubzilla.hu/library/jRange/jquery.range.js?v=10.0.8"></script>
  2623. <script src="https://hub.hubzilla.hu/library/colorbox/jquery.colorbox-min.js?v=10.0.8"></script>
  2624. <script src="https://hub.hubzilla.hu/library/jquery.AreYouSure/jquery.are-you-sure.js?v=10.0.8"></script>
  2625. <script src="https://hub.hubzilla.hu/library/tableofcontents/jquery.toc.js?v=10.0.8"></script>
  2626. <script src="https://hub.hubzilla.hu/library/Sortable/Sortable.min.js?v=10.0.8"></script>
  2627. <script src="https://hub.hubzilla.hu/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js?v=10.0.8"></script>
  2628. <script src="https://hub.hubzilla.hu/library/bootbox/bootbox.min.js?v=10.0.8"></script>
  2629. <script src="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.js?v=10.0.8"></script>
  2630. <script src="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js?v=10.0.8"></script>
  2631. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/adminlte.min.js?v=10.0.8"></script>
  2632. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/overlayscrollbar.min.js?v=10.0.8"></script>
  2633.  
  2634. <link rel="alternate" type="application/atom+xml" title="Posts and comments" href="https://hub.hubzilla.hu/feed/pepecyb" />
  2635. <link rel="alternate" type="application/atom+xml" title="Only posts" href="https://hub.hubzilla.hu/feed/pepecyb?f=&top=1" />
  2636. <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" />
  2637. <link rel="manifest" href="/manifest.json" />
  2638. <link rel="shortcut icon" href="https://hub.hubzilla.hu/photo/profile/m/5" />
  2639. <link rel="apple-touch-icon" href="/images/app/hz-192.png" />
  2640. <link rel="search" href="https://hub.hubzilla.hu/opensearch" type="application/opensearchdescription+xml" title="Search Whoville (Hubzilla)" />
  2641.  
  2642.  
  2643. <script>
  2644. var lang = 'en';
  2645. var updateInterval = 80000;
  2646. var sse_enabled = 0;
  2647. var localUser = false;
  2648. var zid = null;
  2649. var justifiedGalleryActive = false;
  2650. var channelId = 5; var preloadImages = 0;
  2651. var auto_save_draft = true;
  2652. var module = 'channel';</script>
  2653.  
  2654.  
  2655.  
  2656. <meta name="keywords" content="ungarn,hungary,magyarorsz&aacute;g,vape,linux,gitarre,guitar,selfhost,s04,discworld,scheibenwelt,pratchett,hubzilla,pfrunzel,firefish,fediverse" />
  2657. <meta property="og:title" content="Der Pepe (Hubzilla) ⁂ ⚝">
  2658. <meta property="og:image" content="https://hub.hubzilla.hu/photo/profile/l/5">
  2659. <meta property="og:image:type" content="image/png">
  2660. <meta property="og:description" content="@Der Pepe (Forte) ⁂ ⚝ Test-Posting zur Diagnose">
  2661. <meta property="og:type" content="article">
  2662. <script>
  2663.  
  2664. var bParam_cmd = "https://hub.hubzilla.hu/update/channel";
  2665.  
  2666. var conv_mode = 'channel';
  2667.  
  2668. var page_mode = 'client';
  2669.  
  2670. var bParam_uid = 5;
  2671. var bParam_gid = 0;
  2672. var bParam_cid = 0;
  2673. var bParam_cmin = (-1);
  2674. var bParam_cmax = (-1);
  2675. var bParam_star = 0;
  2676. var bParam_liked = 0;
  2677. var bParam_conv = 0;
  2678. var bParam_spam = 0;
  2679. var bParam_new = 0;
  2680. var bParam_page = 1;
  2681. var bParam_wall = 1;
  2682. var bParam_list = 0;
  2683. var bParam_fh = 0;
  2684. var bParam_dm = 0;
  2685.  
  2686. var bParam_search = "";
  2687. var bParam_xchan = "";
  2688. var bParam_order = "post";
  2689. var bParam_file = "";
  2690. var bParam_cats = "";
  2691. var bParam_tags = "";
  2692. var bParam_dend = "";
  2693. var bParam_dbegin = "";
  2694. var bParam_mid = "4c683a95-be61-4b2a-a7b4-366e37085cb1";
  2695. var bParam_verb = "";
  2696. var bParam_net = "";
  2697. var bParam_pf = "";
  2698. var bParam_unseen = "";
  2699.  
  2700. function buildCmd() {
  2701.  
  2702. let udargs = ((page_load) ? "/load" : "");
  2703. let bCmd = bParam_cmd + udargs;
  2704.  
  2705. if(bParam_uid) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "p=" + bParam_uid;
  2706. if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmin=" + bParam_cmin;
  2707. if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cmax=" + bParam_cmax;
  2708. if(bParam_gid != 0) {
  2709. bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "gid=" + bParam_gid;
  2710. } else
  2711. if(bParam_cid != 0) {
  2712. bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cid=" + bParam_cid;
  2713. }
  2714. if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "star=" + bParam_star;
  2715. if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "liked=" + bParam_liked;
  2716. if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "conv=" + bParam_conv;
  2717. if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "spam=" + bParam_spam;
  2718. if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "new=" + bParam_new;
  2719. if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "wall=" + bParam_wall;
  2720. if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "list=" + bParam_list;
  2721. if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "fh=" + bParam_fh;
  2722. if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dm=" + bParam_dm;
  2723. if(bParam_search != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "search=" + bParam_search;
  2724. if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "xchan=" + bParam_xchan;
  2725. if(bParam_order != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "order=" + bParam_order;
  2726. if(bParam_file != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "file=" + bParam_file;
  2727. if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "cat=" + bParam_cats;
  2728. if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "tag=" + bParam_tags;
  2729. if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dend=" + bParam_dend;
  2730. if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "dbegin=" + bParam_dbegin;
  2731. if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "mid=" + bParam_mid;
  2732. if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "verb=" + bParam_verb;
  2733. if(bParam_net != "") bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "net=" + bParam_net;
  2734. if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "page=" + bParam_page;
  2735. if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "pf=" + bParam_pf;
  2736. if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes('?')) ? '&' : '?') + "unseen=" + bParam_unseen;
  2737. return(bCmd);
  2738.  
  2739. }
  2740.  
  2741. </script>
  2742.  
  2743. <script src="/addon/gallery/view/js/gallery.js" type="module"></script><script>$(document).ready(function() {
  2744. $("#nav-search-text").search_autocomplete('https://hub.hubzilla.hu/acl');
  2745. });</script><script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  2746. </head>
  2747.  
  2748. <body class="layout-fixed sidebar-expand-md sidebar-mini bg-body-tertiary app-loaded sidebar-open">
  2749. <div class="app-wrapper">
  2750.  
  2751. <header><div id="toast-container" class="vstack gap-3 m-3 position-fixed bottom-0 end-0"></div>
  2752. </header>
  2753. <nav class="app-header navbar navbar-expand bg-body border-0 sticky-top"> <!--begin::Container-->
  2754. <div class="container-fluid"> <!--begin::Start Navbar Links-->
  2755. <ul class="navbar-nav">
  2756. <li class="nav-item">
  2757. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"><i class="bi bi-layout-sidebar"></i></a>
  2758. </li>
  2759. </ul>
  2760. <ul class="navbar-nav">
  2761. </ul>
  2762.  
  2763. <!-- Right navbar links -->
  2764. <ul class="navbar-nav ml-auto">
  2765. <!-- App settings icon-->
  2766.  
  2767. <!-- Navbar Search -->
  2768. <li class="nav-item d-none d-md-block">
  2769. <div class="navbar-search-block">
  2770. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  2771. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  2772. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  2773. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  2774. </form>
  2775. </div>
  2776. </li>
  2777. <!-- notificattion button for smaller screens-->
  2778. <li id="notifications-btn" class="nav-item d-md-none">
  2779. <a class="nav-link notifications-btn" id="notifications-btn-icon" href="#"><i class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
  2780. </li>
  2781. <script>
  2782. document.getElementById('notifications-btn').addEventListener('click',
  2783. function (event) {
  2784.  
  2785. event.preventDefault(); // Prevent default link behavior
  2786.  
  2787. });
  2788. </script>
  2789.  
  2790.  
  2791. <!-- user dowpdown menu-->
  2792. <!--end::User Menu Dropdown-->
  2793. <li class="nav-item mt-1 px-1">
  2794. <a class="btn btn-primary btn-sm" href="login" title="Sign in">Login</a>
  2795. </li>
  2796. <li class="nav-item mt-1 px-1">
  2797. <a class="btn btn-success btn-sm" href="register" title="Create an account">Register</a>
  2798. </li>
  2799.  
  2800. <!-- right sidebar button on smaller screen-->
  2801. <li class="nav-item">
  2802. <a class="nav-link d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive"
  2803. aria-controls="offcanvasResponsive"><i class="bi bi-layout-text-sidebar"></i></a>
  2804. </li>
  2805.  
  2806. </ul> <!--end::End Navbar Links-->
  2807. </div> <!--end::Container-->
  2808. </nav>
  2809.  
  2810.  
  2811. <!--begin::Sidebar-->
  2812. <aside class="app-sidebar bg-dark shadow" data-bs-theme="dark">
  2813. <!--begin::Sidebar Brand-->
  2814. <div class="sidebar-brand">
  2815. <!--begin::Brand Link-->
  2816. <a href="/" class="brand-link">
  2817. <!--begin::Brand Image-->
  2818. <!-- <img
  2819. src="./assets/img/AdminLTELogo.png"
  2820. alt="U"
  2821. class="brand-image opacity-75 shadow"
  2822. /> -->
  2823. <!--end::Brand Image-->
  2824. <!--begin::Brand Text-->
  2825. <span class="brand-text fw-light">Whoville</span>
  2826. <!--end::Brand Text-->
  2827. </a>
  2828. <!--end::Brand Link-->
  2829. </div>
  2830. <!--end::Sidebar Brand-->
  2831. <!--begin::Sidebar Wrapper-->
  2832. <div class="sidebar-wrapper">
  2833. <nav class="mt-2">
  2834. <!--begin::Sidebar Menu-->
  2835. <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
  2836. <li class="nav-header pb-3 pt-1">
  2837. <div id="bd-theme" class="btn-group" role="group" aria-label="Basic radio toggle button group">
  2838. <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked
  2839. data-bs-theme-value="auto">
  2840. <label class="btn btn-sm btn-outline-primary" for="btnradio1"><i
  2841. class="bi bi-circle-half me-2"></i>Auto</label>
  2842.  
  2843. <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off"
  2844. data-bs-theme-value="dark">
  2845. <label class="btn btn-sm btn-outline-primary" for="btnradio2"><i
  2846. class="bi bi-moon-fill me-2"></i>Dark</label>
  2847.  
  2848. <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off"
  2849. data-bs-theme-value="light">
  2850. <label class="btn btn-sm btn-outline-primary" for="btnradio3"><i
  2851. class="bi bi-sun-fill me-2"></i>Light</label>
  2852. </div>
  2853. </li>
  2854. <li class="nav-header d-block d-md-none">
  2855. <div class="navbar-search-block">
  2856. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  2857. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  2858. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  2859. onblur="closeMenu('nav-search'); openMenu('nav-search-btn');" />
  2860. </form>
  2861. </div>
  2862. </li>
  2863.  
  2864. <!-- Pinned user apps -->
  2865. <!-- Channel apps; needs fixing -->
  2866. <li class="nav-header" aria-disabled="true">Channel Apps</li>
  2867. <li class="nav-item">
  2868. <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>
  2869. </li>
  2870. <li class="nav-item">
  2871. <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>
  2872. </li>
  2873. <li class="nav-item">
  2874. <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>
  2875. </li>
  2876. <li class="nav-item">
  2877. <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>
  2878. </li>
  2879. <li class="nav-item">
  2880. <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>
  2881. </li>
  2882. <li class="nav-item">
  2883. <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>
  2884. </li>
  2885. <li class="nav-item">
  2886. <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>
  2887. </li>
  2888. <li class="nav-item">
  2889. <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>
  2890. </li>
  2891. <li class="nav-item">
  2892. <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>
  2893. </li>
  2894. <br>
  2895.  
  2896. <li class="nav-header" aria-disabled="true">System Apps</li>
  2897. <!-- System apps -->
  2898. <!-- other apps in main sidebar menu -->
  2899. <li class="nav-item">
  2900. <a href="https://hub.hubzilla.hu/directory" class="nav-link ">
  2901. <i class="nav-icon bi bi-diagram-3"></i> <p>Directory</p>
  2902. </a>
  2903. </li>
  2904.  
  2905. <!-- other apps in main sidebar menu -->
  2906. <li class="nav-item">
  2907. <a href="https://hub.hubzilla.hu/help" class="nav-link ">
  2908. <i class="nav-icon bi bi-question-lg"></i> <p>Help</p>
  2909. </a>
  2910. </li>
  2911.  
  2912. <!-- other apps in main sidebar menu -->
  2913. <li class="nav-item">
  2914. <a href="https://hub.hubzilla.hu/lang" class="nav-link ">
  2915. <i class="nav-icon bi bi-translate"></i> <p>Language</p>
  2916. </a>
  2917. </li>
  2918.  
  2919. <!-- other apps in main sidebar menu -->
  2920. <li class="nav-item">
  2921. <a href="https://hub.hubzilla.hu/likebanner" class="nav-link ">
  2922. <p>Like Us</p>
  2923. </a>
  2924. </li>
  2925.  
  2926. <!-- other apps in main sidebar menu -->
  2927. <li class="nav-item">
  2928. <a href="https://hub.hubzilla.hu/pubstream" class="nav-link ">
  2929. <i class="nav-icon bi bi-globe"></i> <p>Public Stream</p>
  2930. </a>
  2931. </li>
  2932.  
  2933. <!-- other apps in main sidebar menu -->
  2934. <li class="nav-item">
  2935. <a href="https://hub.hubzilla.hu/qrator" class="nav-link ">
  2936. <i class="nav-icon bi bi-qr-code"></i> <p>QRator</p>
  2937. </a>
  2938. </li>
  2939.  
  2940. <!-- other apps in main sidebar menu -->
  2941. <li class="nav-item">
  2942. <a href="https://hub.hubzilla.hu/randprof" class="nav-link ">
  2943. <i class="nav-icon bi bi-shuffle"></i> <p>Random Channel</p>
  2944. </a>
  2945. </li>
  2946.  
  2947. <!-- other apps in main sidebar menu -->
  2948. <li class="nav-item">
  2949. <a href="https://framagit.org/hubzilla/core/issues" class="nav-link ">
  2950. <i class="nav-icon bi bi-bug"></i> <p>Report Bug</p>
  2951. </a>
  2952. </li>
  2953.  
  2954. <!-- other apps in main sidebar menu -->
  2955. <li class="nav-item">
  2956. <a href="https://hub.hubzilla.hu/search" class="nav-link ">
  2957. <i class="nav-icon bi bi-search"></i> <p>Search</p>
  2958. </a>
  2959. </li>
  2960.  
  2961. <!-- other apps in main sidebar menu -->
  2962. <li class="nav-item">
  2963. <a href="https://hub.hubzilla.hu/donate" class="nav-link ">
  2964. <p>Support Hubzilla</p>
  2965. </a>
  2966. </li>
  2967.  
  2968. </ul>
  2969. <!--end::Sidebar Menu-->
  2970. </nav>
  2971. </div>
  2972. <!--end::Sidebar Wrapper-->
  2973. </aside>
  2974. <!--end::Sidebar-->
  2975.  
  2976. <script>
  2977. document.addEventListener('DOMContentLoaded',
  2978. function() {
  2979.  
  2980. // Function to apply the saved sidebar state
  2981. function applySavedState() {
  2982.  
  2983. const isDesktop = window.innerWidth >= 768; // AdminLTE's desktop breakpoint
  2984. const savedState = localStorage.getItem('sidebarCollapsed');
  2985.  
  2986. // Apply state only on desktop
  2987. if (isDesktop && savedState !== null) {
  2988.  
  2989. document.body.classList.toggle('sidebar-collapse',
  2990. savedState === 'true');
  2991.  
  2992. }
  2993.  
  2994. }
  2995.  
  2996. // Apply saved state on initial load
  2997. applySavedState();
  2998.  
  2999. // Re-apply state when window is resized to desktop
  3000. window.addEventListener('resize',
  3001. applySavedState);
  3002.  
  3003. // Watch for sidebar class changes to update localStorage
  3004. const observer = new MutationObserver(function(mutations) {
  3005.  
  3006. mutations.forEach(function(mutation) {
  3007.  
  3008. if (mutation.attributeName === 'class') {
  3009.  
  3010. const isDesktop = window.innerWidth >= 768;
  3011. const isCollapsed = document.body.classList.contains('sidebar-collapse');
  3012.  
  3013. // Save state only for desktop interactions
  3014. if (isDesktop) {
  3015.  
  3016. localStorage.setItem('sidebarCollapsed',
  3017. isCollapsed);
  3018.  
  3019. }
  3020.  
  3021. }
  3022.  
  3023. });
  3024.  
  3025. });
  3026.  
  3027. // Start observing the body element for class changes
  3028. observer.observe(document.body,
  3029. {
  3030. attributes: true
  3031. });
  3032.  
  3033. });
  3034. </script>
  3035.  
  3036. <!-- Content Wrapper. Contains page content -->
  3037. <main class="app-main px-1 py-3" style="min-height: calc(100vh - 56px);">
  3038. <div class="container-xl">
  3039. <div class="row">
  3040. <div id="region_2" class="col-12 col-md-12 col-lg-8">
  3041.  
  3042. <div id="live-channel"></div>
  3043. <script> var profile_uid = 5; var netargs = '?f='; var profile_page = 1; divmore_height = 400;</script>
  3044. <noscript><div id="threads-begin"></div>
  3045. <div id="thread-wrapper-2669850" class="thread-wrapper toplevel_item card generic-content-wrapper h-entry mb-4 clearfix" data-b64mids='[
  3046. "4c683a95-be61-4b2a-a7b4-366e37085cb1",
  3047. "776ca57a-93d2-49cb-b24c-b4bccc45b417"
  3048. ]'>
  3049. <a name="item_2669850" ></a>
  3050. <div class="wall-item-outside-wrapper" id="wall-item-outside-wrapper-2669850" >
  3051. <div class="rounded wall-item-content-wrapper" id="wall-item-content-wrapper-2669850">
  3052. <div class="p-2 wall-item-head wall-item-head-new card-body clearfix">
  3053. <div class="lh-sm text-end float-end">
  3054. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669850">
  3055. <i class="bi bi-geo-alt" title="Nagybaracska"></i>
  3056. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3057. <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>
  3058. </div>
  3059. </div>
  3060. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669850" >
  3061. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669850">
  3062. <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" />
  3063. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3064. <div class="dropdown-menu">
  3065. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  3066. </div>
  3067. </div>
  3068. </div>
  3069. <div class="wall-item-author">
  3070. <div class="text-truncate">
  3071. <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>
  3072. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">pepecyb@hub.hubzilla.hu</small>
  3073. </div>
  3074. </div>
  3075. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669850">
  3076. <div class="wall-item-body e-content" id="wall-item-body-2669850">
  3077. @<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
  3078. </div>
  3079. </div>
  3080. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3081. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669850">
  3082. <div class="">
  3083. <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">
  3084. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  3085. <div class="dropdown-menu">
  3086. <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>
  3087. </div>
  3088. <div class="">
  3089. <div id="like-rotator-2669850" class="spinner-wrapper">
  3090. <div class="spinner s"></div>
  3091. </div>
  3092. </div>
  3093. </div>
  3094. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669850">
  3095. <div class="">
  3096. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669850">
  3097. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3098. </button>
  3099. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669850">
  3100. <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>
  3101. <div class="dropdown-divider"></div>
  3102. <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>
  3103. </div>
  3104. </div>
  3105. </div>
  3106. </div>
  3107. </div>
  3108. </div>
  3109. <div id="thread-wrapper-2669928" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='[
  3110. "02bc673c-81ab-4384-86fa-493a67dcf7ce"
  3111. ]'>
  3112. <a name="item_2669928" ></a>
  3113. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2669928" >
  3114. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2669928">
  3115. <div class="p-2 wall-item-head card-body clearfix">
  3116. <div class="lh-sm text-end float-end">
  3117. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669928">
  3118. <a href="http://starwars.com" target="_blank" rel="nofollow noopener" >Felucia</a>
  3119. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3120. <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>
  3121. </div>
  3122. </div>
  3123. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669928" >
  3124. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669928">
  3125. <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" />
  3126. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3127. <div class="dropdown-menu">
  3128. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" title="View Profile">View Profile</a>
  3129. </div>
  3130. </div>
  3131. </div>
  3132. <div class="wall-item-author">
  3133. <div class="text-truncate">
  3134. <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>
  3135. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">sh@hub.hayfidelity.de</small>
  3136. </div>
  3137. </div>
  3138. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669928">
  3139. <div class="wall-item-body e-content" id="wall-item-body-2669928">
  3140. Ist die Installation wie bei streams?
  3141. </div>
  3142. </div>
  3143. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3144. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669928">
  3145. <div class="">
  3146. <div id="like-rotator-2669928" class="spinner-wrapper">
  3147. <div class="spinner s"></div>
  3148. </div>
  3149. </div>
  3150. </div>
  3151. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669928">
  3152. <div class="">
  3153. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669928">
  3154. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3155. </button>
  3156. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669928">
  3157. <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>
  3158. <div class="dropdown-divider"></div>
  3159. <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>
  3160. </div>
  3161. </div>
  3162. </div>
  3163. </div>
  3164. </div>
  3165. </div>
  3166. </div>
  3167. <div id="thread-wrapper-2670071" class="thread-wrapper u-comment h-cite card-footer text-body-secondary clearfix" data-b64mids='[
  3168. "398738ae-9974-4e8e-8007-225492532b6b",
  3169. "5238508f-6bf4-44cf-84ab-afebd9e8c33f"
  3170. ]'>
  3171. <a name="item_2670071" ></a>
  3172. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2670071" >
  3173. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2670071">
  3174. <div class="p-2 wall-item-head card-body clearfix">
  3175. <div class="lh-sm text-end float-end">
  3176. <div class="wall-item-ago opacity-75" id="wall-item-ago-2670071">
  3177. <i class="bi bi-shield-check" title="Message signature validated"></i>
  3178. <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>
  3179. </div>
  3180. </div>
  3181. <div class="float-start wall-item-info pe-2" id="wall-item-info-2670071" >
  3182. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2670071">
  3183. <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" />
  3184. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  3185. <div class="dropdown-menu">
  3186. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  3187. </div>
  3188. </div>
  3189. </div>
  3190. <div class="wall-item-author">
  3191. <div class="text-truncate">
  3192. <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>
  3193. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">pepecyb@hub.hubzilla.hu</small>
  3194. </div>
  3195. </div>
  3196. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2670071">
  3197. <div class="wall-item-body e-content" id="wall-item-body-2670071">
  3198. Ja,
  3199. im Prinzip kein Unterschied. Läuft auch absolut geschmeidig.
  3200. </div>
  3201. </div>
  3202. <div class="p-2 wall-item-tools d-flex justify-content-between">
  3203. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2670071">
  3204. <div class="">
  3205. <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">
  3206. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  3207. <div class="dropdown-menu">
  3208. <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>
  3209. </div>
  3210. <div class="">
  3211. <div id="like-rotator-2670071" class="spinner-wrapper">
  3212. <div class="spinner s"></div>
  3213. </div>
  3214. </div>
  3215. </div>
  3216. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2670071">
  3217. <div class="">
  3218. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2670071">
  3219. <i class="bi bi-three-dots-vertical generic-icons"></i>
  3220. </button>
  3221. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2670071">
  3222. <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>
  3223. <div class="dropdown-divider"></div>
  3224. <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>
  3225. </div>
  3226. </div>
  3227. </div>
  3228. </div>
  3229. </div>
  3230. </div>
  3231. </div>
  3232. </div>
  3233. <div id="threads-end"></div>
  3234. <div id="conversation-end"></div>
  3235. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  3236. <div class="modal-dialog">
  3237. <div class="modal-content">
  3238. <div class="modal-header">
  3239. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  3240. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  3241. </div>
  3242. <div class="modal-body" id="conversation_settings_body">
  3243. Loading...
  3244. </div>
  3245. </div><!-- /.modal-content -->
  3246. </div><!-- /.modal-dialog -->
  3247. </div><!-- /.modal -->
  3248. <div class="pager">
  3249. <a href="https://hub.hubzilla.hu/channel/pepecyb?mid=4c683a95-be61-4b2a-a7b4-366e37085cb1&page=2" class="pager-next">older</a></div>
  3250. </noscript><div id="threads-begin"></div>
  3251. <div id="threads-end"></div>
  3252. <div id="conversation-end"></div>
  3253. <div id="page-spinner" class="spinner-wrapper">
  3254. <div class="spinner m"></div>
  3255. <div id="image_counter" class="text-muted text-center small"></div>
  3256. </div>
  3257. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  3258. <div class="modal-dialog">
  3259. <div class="modal-content">
  3260. <div class="modal-header">
  3261. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  3262. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  3263. </div>
  3264. <div class="modal-body" id="conversation_settings_body">
  3265. Loading...
  3266. </div>
  3267. </div><!-- /.modal-content -->
  3268. </div><!-- /.modal-dialog -->
  3269. </div><!-- /.modal -->
  3270. <div id="edit-modal" class="modal" tabindex="-1">
  3271. <div class="modal-dialog">
  3272. <div class="modal-content">
  3273. <div class="modal-header">
  3274. <div id="edit-modal-title" class="modal-title w-75">
  3275. <div class="placeholder-wave">
  3276. <span class="placeholder placeholder-lg" style="width: 200px;"></span>
  3277. </div>
  3278. </div>
  3279. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  3280. </div>
  3281. <div id="edit-modal-body" class="modal-body">
  3282. <div class="placeholder-wave">
  3283. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3284. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3285. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  3286. </div>
  3287. </div>
  3288. <div class="modal-footer">
  3289. <div id="edit-modal-tools" class="me-auto"></div>
  3290. <button id="contact-save" type="button" class="btn btn-primary"></button>
  3291. </div>
  3292. </div>
  3293. </div>
  3294. </div>
  3295. <script>
  3296.  
  3297. let poi;
  3298. let section = 'roles';
  3299. let sub_section;
  3300.  
  3301. $(document).ready(function() {
  3302.  
  3303. if (window.location.hash) {
  3304.  
  3305. poi = window.location.hash.substr(1);
  3306. init_contact_edit(poi);
  3307.  
  3308. }
  3309.  
  3310. window.onhashchange = function() {
  3311.  
  3312. if (window.location.hash) {
  3313.  
  3314. poi = window.location.hash.substr(1);
  3315. init_contact_edit(poi);
  3316.  
  3317. }
  3318.  
  3319. };
  3320.  
  3321. });
  3322.  
  3323. $(document).on('click',
  3324. '.contact-edit',
  3325. function (e) {
  3326.  
  3327. e.preventDefault();
  3328. poi = this.dataset.id
  3329. init_contact_edit(poi);
  3330.  
  3331. });
  3332.  
  3333. $(document).on('click',
  3334. '#contact-save',
  3335. function () {
  3336.  
  3337. let form_data = $('#contact-edit-form').serialize() + '&section=' + section + '&sub_section=' + sub_section;
  3338.  
  3339. $.post('contactedit/' + poi,
  3340. form_data,
  3341. function(data) {
  3342.  
  3343. if (!data.success) {
  3344.  
  3345. toast(data.message,
  3346. 'danger');
  3347. return;
  3348.  
  3349. }
  3350. activate(data);
  3351. toast(data.message,
  3352. ((data.success) ? 'info' : 'danger'));
  3353. // $('#edit-modal').modal('hide');
  3354.  
  3355. });
  3356.  
  3357.  
  3358. });
  3359.  
  3360. $(document).on('click',
  3361. '.contact-tool',
  3362. function (e) {
  3363.  
  3364. e.preventDefault();
  3365. let cmd = this.dataset.cmd;
  3366.  
  3367. $.get('contactedit/' + poi + '/' + cmd,
  3368. function(data) {
  3369.  
  3370. $('#edit-modal-tools').html(data.tools);
  3371. toast(data.message,
  3372. ((data.success) ? 'info' : 'danger'));
  3373. if (cmd === 'drop') {
  3374.  
  3375. if ($('#contact-entry-wrapper-' + poi).length) {
  3376.  
  3377. $('#contact-entry-wrapper-' + poi).fadeOut();
  3378.  
  3379. }
  3380. $('#edit-modal').modal('hide');
  3381.  
  3382. }
  3383.  
  3384. });
  3385.  
  3386. });
  3387.  
  3388. $(document).on('click',
  3389. '.section',
  3390. function () {
  3391.  
  3392. section = this.dataset.section;
  3393. sub_section = '';
  3394.  
  3395. });
  3396.  
  3397. $(document).on('click',
  3398. '.sub_section',
  3399. function () {
  3400.  
  3401. if ($(this).hasClass('sub_section_active')) {
  3402.  
  3403. $(this).removeClass('sub_section_active');
  3404. sub_section = '';
  3405.  
  3406. }
  3407. else {
  3408.  
  3409. $(this).addClass('sub_section_active');
  3410. sub_section = this.dataset.section;
  3411.  
  3412. }
  3413.  
  3414. });
  3415.  
  3416. $('#edit-modal').on('hidden.bs.modal',
  3417. function (e) {
  3418.  
  3419. if (window.location.hash) {
  3420.  
  3421. history.replaceState(null,
  3422. '',
  3423. 'connections');
  3424.  
  3425. }
  3426.  
  3427. });
  3428.  
  3429. function init_contact_edit(poi) {
  3430.  
  3431. if (!poi)
  3432. return;
  3433.  
  3434. $('.contact-edit-rotator-' + poi).addClass('d-inline-block');
  3435. $('.contact-edit-icon-' + poi).hide();
  3436. $.get('contactedit/' + poi,
  3437. function(data) {
  3438.  
  3439. if (!data.success) {
  3440.  
  3441. toast(data.message,
  3442. 'danger');
  3443. return;
  3444.  
  3445. }
  3446. $('#edit-modal').modal('show');
  3447. activate(data);
  3448.  
  3449. });
  3450.  
  3451. }
  3452.  
  3453. function activate(data) {
  3454.  
  3455. $('#contact-save').removeClass('disabled');
  3456. $('#contact-tools').removeClass('disabled');
  3457. $('.contact-edit-rotator-' + poi).removeClass('d-inline-block');
  3458. $('.contact-edit-icon-' + poi).show();
  3459.  
  3460. if (data.title) {
  3461.  
  3462. $('#edit-modal-title').html(data.title);
  3463.  
  3464. }
  3465.  
  3466. if (data.body) {
  3467.  
  3468. $('#edit-modal-body').html(data.body);
  3469.  
  3470. }
  3471.  
  3472. if (data.tools) {
  3473.  
  3474. $('#edit-modal-tools').html(data.tools);
  3475.  
  3476. }
  3477.  
  3478. if (data.submit) {
  3479.  
  3480. $('#contact-save').html(data.submit);
  3481.  
  3482. }
  3483.  
  3484. if (data.role && $('#contact-role-' + poi).length) {
  3485.  
  3486. $('#contact-role-' + poi).html(data.role);
  3487.  
  3488. }
  3489.  
  3490. if (data.pending) {
  3491.  
  3492. $('#contact-save').removeClass('btn-primary');
  3493. $('#contact-save').addClass('btn-success');
  3494.  
  3495. }
  3496. else {
  3497.  
  3498. $('#contact-save').addClass('btn-primary');
  3499. $('#contact-save').removeClass('btn-success');
  3500.  
  3501. }
  3502.  
  3503. }
  3504. </script>
  3505. <div id="content-complete"></div>
  3506. <script>
  3507. $(document).ready(function(){
  3508.  
  3509.  
  3510. // hide #back-top first
  3511. $("#back-top").hide();
  3512.  
  3513. // fade in #back-top
  3514. $(function () {
  3515.  
  3516. $(window).scroll(function () {
  3517.  
  3518. if ($(this).scrollTop() > 100) {
  3519.  
  3520. $('#back-top').fadeIn();
  3521.  
  3522. } else {
  3523.  
  3524. $('#back-top').fadeOut();
  3525.  
  3526. }
  3527.  
  3528. });
  3529.  
  3530. // scroll body to 0px on click
  3531. $('#back-top a').click(function () {
  3532.  
  3533. $('body,
  3534. html').animate({
  3535.  
  3536. scrollTop: 0
  3537.  
  3538. },
  3539. 150);
  3540. return false;
  3541.  
  3542. });
  3543.  
  3544. });
  3545.  
  3546.  
  3547. });
  3548. </script><p id="back-top"><a href="#top"><span></span></a></p>
  3549.  
  3550. </div>
  3551.  
  3552. <div class="d-lg-block col-lg-4 sticky-column pe-0">
  3553. <div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
  3554. <div class="offcanvas-header mt-2">
  3555. <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
  3556. </div>
  3557. <div class="offcanvas-body px-0">
  3558. <div class="container row pe-0">
  3559. <div id="region_1" class="pe-0">
  3560. <div id="left_aside_wrapper">
  3561.  
  3562. <script>
  3563. var sse_bs_active = false;
  3564. var sse_offset = 0;
  3565. var sse_type;
  3566. var sse_partial_result = false;
  3567. var sse_rmids = [
  3568.  
  3569. ];
  3570. var sse_fallback_interval;
  3571. var sse_sys_only = 0;
  3572.  
  3573. document.addEventListener("DOMContentLoaded",
  3574. function() {
  3575.  
  3576. let notificationsWrapper = document.getElementById('notifications_wrapper');
  3577. let notificationsParent = notificationsWrapper ? notificationsWrapper.parentElement.id : null;
  3578. let notificationsBtn = document.querySelector('.notifications-btn');
  3579.  
  3580. // Event listener for notifications button
  3581. if (notificationsBtn) {
  3582.  
  3583. notificationsBtn.addEventListener('click',
  3584. function() {
  3585.  
  3586. // Remove the 'd-none' class to show the notifications wrapper
  3587. notificationsWrapper.classList.remove('d-none');
  3588.  
  3589. // Check if the notifications wrapper has the 'fs' class
  3590. if (notificationsWrapper.classList.contains('fs')) {
  3591.  
  3592. // Prepend the notifications wrapper back to its original parent and hide it
  3593. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  3594. notificationsWrapper.classList.add('d-none');
  3595.  
  3596. } else {
  3597.  
  3598. // Otherwise,
  3599. prepend the notifications wrapper to 'main'
  3600. document.querySelector('main').prepend(notificationsWrapper);
  3601.  
  3602. }
  3603.  
  3604. // Toggle the 'fs' class
  3605. notificationsWrapper.classList.toggle('fs');
  3606.  
  3607. });
  3608.  
  3609. }
  3610.  
  3611. // Event listener for clicking a notification
  3612. document.addEventListener('click',
  3613. function(event) {
  3614.  
  3615. if (event.target.closest('a') && event.target.closest('a').classList.contains('notification')) {
  3616.  
  3617. console.log(1)
  3618. if (notificationsWrapper.classList.contains('fs')) {
  3619.  
  3620. // Move notifications wrapper back to its original parent and hide it
  3621. notificationsWrapper.classList.remove('fs');
  3622. notificationsWrapper.classList.add('d-none');
  3623. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  3624.  
  3625.  
  3626. }
  3627.  
  3628. }
  3629.  
  3630. });
  3631.  
  3632. if(sse_enabled) {
  3633.  
  3634. if(typeof(window.SharedWorker) === 'undefined') {
  3635.  
  3636. // notifications with multiple tabs open will not work very well in this scenario
  3637. let evtSource = new EventSource('/sse');
  3638.  
  3639. evtSource.addEventListener('notifications',
  3640. function(e) {
  3641.  
  3642. let obj = JSON.parse(e.data);
  3643. sse_handleNotifications(obj,
  3644. false,
  3645. false);
  3646.  
  3647. },
  3648. false);
  3649.  
  3650. document.addEventListener('visibilitychange',
  3651. function() {
  3652.  
  3653. if (!document.hidden) {
  3654.  
  3655. sse_offset = 0;
  3656. sse_bs_init();
  3657.  
  3658. }
  3659.  
  3660. },
  3661. false);
  3662.  
  3663.  
  3664. }
  3665. else {
  3666.  
  3667. let myWorker = new SharedWorker('/view/js/sse_worker.js',
  3668. localUser);
  3669.  
  3670. myWorker.port.onmessage = function(e) {
  3671.  
  3672. obj = e.data;
  3673. console.log(obj);
  3674. sse_handleNotifications(obj,
  3675. false,
  3676. false);
  3677.  
  3678. }
  3679.  
  3680. myWorker.onerror = function(e) {
  3681.  
  3682. myWorker.port.close();
  3683.  
  3684. }
  3685.  
  3686. myWorker.port.start();
  3687.  
  3688. }
  3689.  
  3690. }
  3691. else {
  3692.  
  3693. if (!document.hidden) {
  3694.  
  3695. sse_fallback_interval = setInterval(sse_fallback,
  3696. updateInterval);
  3697.  
  3698. }
  3699.  
  3700. document.addEventListener('visibilitychange',
  3701. function() {
  3702.  
  3703. if (document.hidden) {
  3704.  
  3705. clearInterval(sse_fallback_interval);
  3706.  
  3707. }
  3708. else {
  3709.  
  3710. sse_offset = 0;
  3711. sse_bs_init();
  3712. sse_fallback_interval = setInterval(sse_fallback,
  3713. updateInterval);
  3714.  
  3715. }
  3716.  
  3717.  
  3718. },
  3719. false);
  3720.  
  3721. }
  3722.  
  3723. document.querySelectorAll('.notification-link').forEach(function (element) {
  3724.  
  3725. element.addEventListener('click',
  3726. function (element) {
  3727.  
  3728. sse_bs_notifications(element,
  3729. true,
  3730. false);
  3731.  
  3732. });
  3733.  
  3734. });
  3735.  
  3736. document.querySelectorAll('.notification-filter').forEach(function (element) {
  3737.  
  3738. element.addEventListener('keypress',
  3739. function(e) {
  3740.  
  3741. if (e.which == 13) {
  3742. // Enter key
  3743. this.blur();
  3744. sse_offset = 0;
  3745.  
  3746. // Clear the content of the menu
  3747. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  3748.  
  3749. // Show the loading element
  3750. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  3751.  
  3752. // Get the value from the input element
  3753. var cn_val = document.getElementById('cn-' + sse_type + '-input') ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase() : '';
  3754.  
  3755. // Send a GET request using the Fetch API
  3756. fetch('/sse_bs/' + sse_type + '/' + sse_offset + '?nquery=' + encodeURIComponent(cn_val))
  3757. .then(response => response.json())
  3758. .then(obj => {
  3759.  
  3760. console.log('sse: bootstraping ' + sse_type);
  3761. console.log(obj);
  3762.  
  3763. sse_bs_active = false;
  3764. sse_partial_result = true;
  3765. sse_offset = obj[
  3766. sse_type
  3767. ].offset;
  3768. if (sse_offset < 0) {
  3769.  
  3770. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  3771.  
  3772. }
  3773.  
  3774. sse_handleNotifications(obj,
  3775. true,
  3776. false);
  3777.  
  3778. })
  3779. .catch(error => {
  3780.  
  3781. console.error('Error fetching data:',
  3782. error);
  3783.  
  3784. });
  3785.  
  3786. }
  3787.  
  3788. });
  3789.  
  3790. });
  3791.  
  3792. document.querySelectorAll('.notifications-textinput-clear').forEach(function (element) {
  3793.  
  3794. element.addEventListener('click',
  3795. function(e) {
  3796.  
  3797. if (!sse_partial_result) return;
  3798.  
  3799. // Clear the content of the menu
  3800. document.getElementById("nav-" + sse_type + "-menu").innerHTML = '';
  3801.  
  3802. // Show the loading element
  3803. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  3804.  
  3805. // Send a GET request using the Fetch API
  3806. fetch('/sse_bs/' + sse_type)
  3807. .then(response => response.json())
  3808. .then(obj => {
  3809.  
  3810. console.log('sse: bootstraping ' + sse_type);
  3811. console.log(obj);
  3812.  
  3813. sse_bs_active = false;
  3814. sse_partial_result = false;
  3815. sse_offset = obj[
  3816. sse_type
  3817. ].offset;
  3818. if (sse_offset < 0) {
  3819.  
  3820. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  3821.  
  3822. }
  3823.  
  3824. sse_handleNotifications(obj,
  3825. true,
  3826. false);
  3827.  
  3828. })
  3829. .catch(error => {
  3830.  
  3831. console.error('Error fetching data:',
  3832. error);
  3833.  
  3834. });
  3835.  
  3836. });
  3837.  
  3838. });
  3839.  
  3840. document.querySelectorAll('.notification-content').forEach(function(element) {
  3841.  
  3842. element.addEventListener('scroll',
  3843. function() {
  3844.  
  3845. if (this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight / 7)) {
  3846.  
  3847. sse_bs_notifications(sse_type,
  3848. false,
  3849. true);
  3850.  
  3851. }
  3852.  
  3853. });
  3854.  
  3855. });
  3856.  
  3857.  
  3858. document.querySelectorAll('#tt-pubs-only').forEach(function (element) {
  3859.  
  3860. element.addEventListener('click',
  3861. function(e) {
  3862.  
  3863.  
  3864. let element = e.target.closest('div');
  3865. let menu = document.querySelector('#nav-pubs-menu');
  3866. let notifications = menu.querySelectorAll('.notification[
  3867. data-thread_top="false"
  3868. ]');
  3869.  
  3870. // Function to check if an element is visible
  3871. function isVisible(el) {
  3872.  
  3873. return el.offsetWidth > 0 && el.offsetHeight > 0;
  3874.  
  3875. }
  3876.  
  3877. if (element.classList.contains('active') && element.classList.contains('sticky-top')) {
  3878.  
  3879. notifications.forEach(function(notification) {
  3880.  
  3881. notification.classList.remove('tt-filter-active');
  3882.  
  3883. });
  3884. element.classList.remove('active',
  3885. 'sticky-top');
  3886.  
  3887. } else {
  3888.  
  3889. notifications.forEach(function(notification) {
  3890.  
  3891. notification.classList.add('tt-filter-active');
  3892.  
  3893. });
  3894. element.classList.add('active',
  3895. 'sticky-top');
  3896.  
  3897. // Count the visible notifications
  3898. let visibleNotifications = Array.from(menu.querySelectorAll('.notification')).filter(isVisible).length;
  3899.  
  3900. // Load more notifications if the visible count is low
  3901. if (sse_type && sse_offset !== -1 && visibleNotifications < 15) {
  3902.  
  3903. sse_bs_notifications(sse_type,
  3904. false,
  3905. true);
  3906.  
  3907. }
  3908.  
  3909. }
  3910.  
  3911.  
  3912. });
  3913.  
  3914. });
  3915.  
  3916. document.querySelectorAll('#cn-pubs-input-clear').forEach(function (element) {
  3917.  
  3918. element.addEventListener('click',
  3919. function(e) {
  3920.  
  3921. let input = document.getElementById('cn-pubs-input');
  3922. input.value = '';
  3923.  
  3924. // Remove 'active' and 'sticky-top' classes to the 'only' element
  3925. let onlyElement = document.getElementById('cn-pubs-only');
  3926. onlyElement.classList.remove('active',
  3927. 'sticky-top');
  3928.  
  3929. // Add 'd-none' class from the clear button
  3930. let clearButton = document.getElementById('cn-pubs-input-clear');
  3931. clearButton.classList.add('d-none');
  3932.  
  3933. // Remove the 'cn-filter-active' class from all notifications
  3934. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  3935. notifications.forEach(function(notification) {
  3936.  
  3937. notification.classList.remove('cn-filter-active');
  3938.  
  3939. });
  3940.  
  3941. });
  3942.  
  3943. });
  3944.  
  3945. document.querySelectorAll('#cn-pubs-input').forEach(function (element) {
  3946.  
  3947. element.addEventListener('input',
  3948. function(e) {
  3949.  
  3950. let input = e.target;
  3951. let val = input.value.toString().toLowerCase();
  3952.  
  3953. // Check if there is input value
  3954. if (val) {
  3955.  
  3956. // Remove '%' if it's at the beginning of the input value
  3957. val = val.indexOf('%') === 0 ? val.substring(1) : val;
  3958.  
  3959. // Add 'active' and 'sticky-top' classes to the 'only' element
  3960. let onlyElement = document.getElementById('cn-pubs-only');
  3961. onlyElement.classList.add('active',
  3962. 'sticky-top');
  3963.  
  3964. // Remove 'd-none' class from the clear button
  3965. let clearButton = document.getElementById('cn-pubs-input-clear');
  3966. clearButton.classList.remove('d-none');
  3967.  
  3968. } else {
  3969.  
  3970. // Remove 'active' and 'sticky-top' classes from the 'only' element
  3971. let onlyElement = document.getElementById('cn-pubs-only');
  3972. onlyElement.classList.remove('active',
  3973. 'sticky-top');
  3974.  
  3975. // Add 'd-none' class to the clear button
  3976. let clearButton = document.getElementById('cn-pubs-input-clear');
  3977. clearButton.classList.add('d-none');
  3978.  
  3979. }
  3980.  
  3981. // Loop through each notification and apply filter logic
  3982. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  3983. notifications.forEach(function(el) {
  3984.  
  3985. let cn = el.dataset.contact_name.toString().toLowerCase();
  3986. let ca = el.dataset.contact_addr.toString().toLowerCase();
  3987.  
  3988. // Check if the contact name or address matches the input value
  3989. if (cn.indexOf(val) === -1 && ca.indexOf(val) === -1) {
  3990.  
  3991. el.classList.add('cn-filter-active');
  3992.  
  3993. } else {
  3994.  
  3995. el.classList.remove('cn-filter-active');
  3996.  
  3997. }
  3998.  
  3999. });
  4000.  
  4001. });
  4002.  
  4003. });
  4004.  
  4005.  
  4006.  
  4007. });
  4008.  
  4009. document.addEventListener('hz:sse_setNotificationsStatus',
  4010. function(e) {
  4011.  
  4012. sse_setNotificationsStatus(e.detail);
  4013.  
  4014. });
  4015.  
  4016. document.addEventListener('hz:sse_bs_init',
  4017. function() {
  4018.  
  4019. sse_bs_init();
  4020.  
  4021. });
  4022.  
  4023. document.addEventListener('hz:sse_bs_counts',
  4024. function() {
  4025.  
  4026. sse_bs_counts();
  4027.  
  4028. });
  4029.  
  4030.  
  4031. function sse_bs_init() {
  4032.  
  4033. // Check if 'notification_open' exists in sessionStorage or if sse_type is defined
  4034. if (sessionStorage.getItem('notification_open') !== null || typeof sse_type !== 'undefined') {
  4035.  
  4036. if (typeof sse_type === 'undefined') {
  4037.  
  4038. sse_type = sessionStorage.getItem('notification_open');
  4039.  
  4040. }
  4041.  
  4042. // Add the 'show' class to the appropriate element
  4043. let subNav = document.getElementById("nav-" + sse_type + "-sub");
  4044. if (subNav) {
  4045.  
  4046. subNav.classList.add('show');
  4047.  
  4048. }
  4049.  
  4050. // Call the sse_bs_notifications function
  4051. sse_bs_notifications(sse_type,
  4052. true,
  4053. false);
  4054.  
  4055. } else {
  4056.  
  4057. // Call the sse_bs_counts function if conditions are not met
  4058. sse_bs_counts();
  4059.  
  4060. }
  4061.  
  4062. }
  4063.  
  4064. function sse_bs_counts() {
  4065.  
  4066. if (sse_bs_active || sse_sys_only) {
  4067.  
  4068. return;
  4069.  
  4070. }
  4071.  
  4072. sse_bs_active = true;
  4073.  
  4074. // Use the fetch API to send the POST request with the data
  4075. fetch('/sse_bs',
  4076. {
  4077.  
  4078. method: 'POST',
  4079.  
  4080. body: new URLSearchParams({
  4081. sse_rmids: sse_rmids
  4082. })
  4083.  
  4084. })
  4085. .then(response => response.json()) // Parse the JSON response
  4086. .then(obj => {
  4087.  
  4088. console.log(obj);
  4089. sse_bs_active = false;
  4090. sse_rmids = [
  4091.  
  4092. ];
  4093. sse_handleNotifications(obj,
  4094. true,
  4095. false);
  4096.  
  4097. })
  4098. .catch(error => {
  4099.  
  4100. console.error('Error:',
  4101. error);
  4102. sse_bs_active = false;
  4103.  
  4104. });
  4105.  
  4106. }
  4107.  
  4108. function sse_bs_notifications(e,
  4109. replace,
  4110. followup) {
  4111.  
  4112. if (sse_bs_active || sse_sys_only) {
  4113.  
  4114. return;
  4115.  
  4116. }
  4117.  
  4118. let manual = false;
  4119.  
  4120. if (typeof replace === 'undefined') {
  4121.  
  4122. replace = e.data.replace;
  4123.  
  4124. }
  4125.  
  4126. if (typeof followup === 'undefined') {
  4127.  
  4128. followup = e.data.followup;
  4129.  
  4130. }
  4131.  
  4132. if (typeof e === 'string') {
  4133.  
  4134. sse_type = e;
  4135.  
  4136. } else {
  4137.  
  4138. manual = true;
  4139. sse_offset = 0;
  4140. sse_type = e.target.dataset.sse_type;
  4141.  
  4142. }
  4143.  
  4144. if (typeof sse_type === 'undefined') {
  4145.  
  4146. return;
  4147.  
  4148. }
  4149.  
  4150. if (followup || !manual || !document.getElementById('notification-link-' + sse_type).classList.contains('collapsed')) {
  4151.  
  4152.  
  4153. if (sse_offset >= 0) {
  4154.  
  4155. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  4156.  
  4157. }
  4158.  
  4159. sessionStorage.setItem('notification_open',
  4160. sse_type);
  4161.  
  4162. if (sse_offset !== -1 || replace) {
  4163.  
  4164. let cn_val = (document.getElementById('cn-' + sse_type + '-input') && sse_partial_result)
  4165. ? document.getElementById('cn-' + sse_type + '-input').value.toString().toLowerCase()
  4166. : '';
  4167.  
  4168. document.getElementById("nav-" + sse_type + "-loading").style.display = 'block';
  4169.  
  4170. sse_bs_active = true;
  4171.  
  4172. // Send POST request using fetch API
  4173. fetch('/sse_bs/' + sse_type + '/' + sse_offset,
  4174. {
  4175.  
  4176. method: 'POST',
  4177.  
  4178. body: new URLSearchParams({
  4179.  
  4180. sse_rmids: sse_rmids,
  4181.  
  4182. nquery: encodeURIComponent(cn_val)
  4183.  
  4184. })
  4185.  
  4186. })
  4187. .then(response => response.json()) // Parse the JSON response
  4188. .then(obj => {
  4189.  
  4190. console.log('sse: bootstraping ' + sse_type);
  4191. console.log(obj);
  4192. sse_bs_active = false;
  4193. sse_rmids = [
  4194.  
  4195. ];
  4196. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  4197. sse_offset = obj[
  4198. sse_type
  4199. ].offset;
  4200. sse_handleNotifications(obj,
  4201. replace,
  4202. followup);
  4203.  
  4204. })
  4205. .catch(error => {
  4206.  
  4207. console.error('Error:',
  4208. error);
  4209. sse_bs_active = false;
  4210.  
  4211. });
  4212.  
  4213. } else {
  4214.  
  4215. document.getElementById("nav-" + sse_type + "-loading").style.display = 'none';
  4216.  
  4217. }
  4218.  
  4219. } else {
  4220.  
  4221. sessionStorage.removeItem('notification_open');
  4222.  
  4223. }
  4224.  
  4225. }
  4226.  
  4227. function sse_handleNotifications(obj,
  4228. replace,
  4229. followup) {
  4230.  
  4231. // Notice and info notifications
  4232. if (obj.notice) {
  4233.  
  4234. obj.notice.notifications.forEach(notification => {
  4235.  
  4236. toast(notification,
  4237. 'danger');
  4238.  
  4239. });
  4240.  
  4241. }
  4242.  
  4243. if (obj.info) {
  4244.  
  4245. obj.info.notifications.forEach(notification => {
  4246.  
  4247. toast(notification,
  4248. 'info');
  4249.  
  4250. });
  4251.  
  4252. }
  4253.  
  4254. if (sse_sys_only) {
  4255.  
  4256. return;
  4257.  
  4258. }
  4259.  
  4260. let primary_notifications = [
  4261. 'dm',
  4262. 'home',
  4263. 'intros',
  4264. 'register',
  4265. 'notify',
  4266. 'files'
  4267. ];
  4268. let secondary_notifications = [
  4269. 'network',
  4270. 'forums',
  4271. 'all_events',
  4272. 'pubs'
  4273. ];
  4274. let all_notifications = [
  4275. ...primary_notifications,
  4276. ...secondary_notifications
  4277. ];
  4278.  
  4279. all_notifications.forEach(type => {
  4280.  
  4281. if (typeof obj[
  4282. type
  4283. ] === 'undefined') {
  4284.  
  4285. return;
  4286.  
  4287. }
  4288.  
  4289. let count = Number(obj[
  4290. type
  4291. ].count);
  4292.  
  4293. // Show notifications and update count
  4294. let updateElement = document.querySelector('.' + type + '-update');
  4295. let buttonElement = document.querySelector('.' + type + '-button');
  4296. let subElement = document.getElementById('nav-' + type + '-sub');
  4297.  
  4298. if (count) {
  4299.  
  4300. if (buttonElement) buttonElement.style.display = 'block'; // Fade-in effect replaced by display block
  4301. if (replace || followup) {
  4302.  
  4303. updateElement.textContent = count >= 100 ? '99+' : count;
  4304.  
  4305. } else {
  4306.  
  4307. count = count + Number(updateElement.textContent.replace(/++$/,
  4308. ''));
  4309. updateElement.textContent = count >= 100 ? '99+' : count;
  4310.  
  4311. }
  4312.  
  4313. } else {
  4314.  
  4315. if (updateElement) updateElement.textContent = '0';
  4316. if (subElement) subElement.classList.remove('show');
  4317. if (buttonElement) {
  4318.  
  4319. buttonElement.style.display = 'none'; // Fade-out effect replaced by display none
  4320. sse_setNotificationsStatus();
  4321.  
  4322. }
  4323.  
  4324. }
  4325.  
  4326. if (obj[
  4327. type
  4328. ].notifications.length) {
  4329.  
  4330. sse_handleNotificationsItems(type,
  4331. obj[
  4332. type
  4333. ].notifications,
  4334. replace,
  4335. followup);
  4336.  
  4337. }
  4338.  
  4339. });
  4340.  
  4341. sse_setNotificationsStatus();
  4342.  
  4343. // Load more notifications if visible notifications count becomes low
  4344. if (sse_type && sse_offset !== -1) {
  4345.  
  4346. let menu = document.getElementById('nav-' + sse_type + '-menu');
  4347. if (menu && menu.children.length < 15) {
  4348.  
  4349. sse_bs_notifications(sse_type,
  4350. false,
  4351. true);
  4352.  
  4353. }
  4354.  
  4355. }
  4356.  
  4357. }
  4358.  
  4359. function sse_handleNotificationsItems(notifyType,
  4360. data,
  4361. replace,
  4362. followup) {
  4363.  
  4364.  
  4365. // Get the template,
  4366. adjust based on the notification type
  4367. let notifications_tpl = (notifyType === 'forums')
  4368. ? decodeURIComponent(document.querySelector("#nav-notifications-forums-template[rel=template]").innerHTML.replace('data-src',
  4369. 'src'))
  4370. : decodeURIComponent(document.querySelector("#nav-notifications-template[rel=template]").innerHTML.replace('data-src',
  4371. 'src'));
  4372.  
  4373. let notify_menu = document.getElementById("nav-" + notifyType + "-menu");
  4374. let notify_loading = document.getElementById("nav-" + notifyType + "-loading");
  4375. let notify_count = document.getElementsByClassName(notifyType + "-update");
  4376.  
  4377. if (replace && !followup) {
  4378.  
  4379. notify_menu.innerHTML = ''; // Clear menu
  4380. notify_loading.style.display = 'none'; // Hide loading
  4381.  
  4382. }
  4383.  
  4384. data.forEach(notification => {
  4385.  
  4386. // Special handling for network notifications
  4387. if (!replace && !followup && notification.thread_top && notifyType === 'network') {
  4388.  
  4389. document.dispatchEvent(new CustomEvent('hz:handleNetworkNotificationsItems',
  4390. {
  4391. detail: notification
  4392. }));
  4393.  
  4394. }
  4395.  
  4396. // Prepare HTML using the template
  4397. let html = notifications_tpl.format(
  4398. notification.notify_link,
  4399.  
  4400. notification.photo,
  4401.  
  4402. notification.name,
  4403.  
  4404. notification.addr,
  4405.  
  4406. notification.message,
  4407.  
  4408. notification.when,
  4409.  
  4410. notification.hclass,
  4411.  
  4412. notification.b64mid,
  4413.  
  4414. notification.notify_id,
  4415.  
  4416. notification.thread_top,
  4417.  
  4418. notification.unseen,
  4419.  
  4420. notification.private_forum,
  4421.  
  4422. encodeURIComponent(notification.mids),
  4423.  
  4424. notification.body
  4425. );
  4426.  
  4427. // Append the new notification HTML to the menu
  4428. notify_menu.insertAdjacentHTML('beforeend',
  4429. html);
  4430.  
  4431. });
  4432.  
  4433. // Sort notifications by date
  4434. if (!replace && !followup) {
  4435.  
  4436. let notifications = Array.from(notify_menu.getElementsByClassName('notification'));
  4437. notifications.sort((a,
  4438. b) => {
  4439.  
  4440. let dateA = new Date(a.dataset.when);
  4441. let dateB = new Date(b.dataset.when);
  4442. return dateA > dateB ? -1 : dateA < dateB ? 1 : 0;
  4443.  
  4444. });
  4445. notifications.forEach(notification => notify_menu.appendChild(notification));
  4446.  
  4447. }
  4448.  
  4449. // Filter thread_top notifications if the filter is active
  4450. let filterThreadTop = document.getElementById('tt-' + notifyType + '-only');
  4451. if (filterThreadTop && filterThreadTop.classList.contains('active')) {
  4452.  
  4453. let notifications = notify_menu.querySelectorAll('[
  4454. data-thread_top="false"
  4455. ]');
  4456. notifications.forEach(notification => notification.classList.add('tt-filter-active'));
  4457.  
  4458. }
  4459.  
  4460. // Filter notifications based on the input field
  4461. let filterInput = document.getElementById('cn-' + notifyType + '-input');
  4462. if (filterInput) {
  4463.  
  4464. let filter = filterInput.value.toString().toLowerCase();
  4465. if (filter) {
  4466.  
  4467. if (filter.indexOf('%') === 0) filter = filter.substring(1); // Remove the percent if it exists
  4468. let notifications = notify_menu.querySelectorAll('.notification');
  4469. notifications.forEach(notification => {
  4470.  
  4471. let cn = notification.dataset.contact_name.toString().toLowerCase();
  4472. let ca = notification.dataset.contact_addr.toString().toLowerCase();
  4473. if (cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1) {
  4474.  
  4475. notification.classList.add('cn-filter-active');
  4476.  
  4477. } else {
  4478.  
  4479. notification.classList.remove('cn-filter-active');
  4480.  
  4481. }
  4482.  
  4483. });
  4484.  
  4485. }
  4486.  
  4487. }
  4488.  
  4489. // Update relative time for notifications
  4490. updateRelativeTime('.autotime-narrow');
  4491.  
  4492. }
  4493.  
  4494.  
  4495. function sse_updateNotifications(type,
  4496. mid) {
  4497.  
  4498.  
  4499. // Skip processing if the type is 'notify' and the conditions don't match
  4500. if (type === 'notify' && (mid !== bParam_mid || sse_type !== 'notify')) {
  4501.  
  4502. return true;
  4503.  
  4504. }
  4505.  
  4506. // Find the notification element based on its 'data-b64mid' attribute
  4507. let notification = document.querySelector(`#nav-${
  4508. type
  4509. }-menu .notification[
  4510. data-b64mid='${
  4511. mid
  4512. }'
  4513. ]`);
  4514.  
  4515. if (notification) {
  4516.  
  4517. notification.remove();
  4518.  
  4519. }
  4520.  
  4521. }
  4522.  
  4523.  
  4524. function sse_setNotificationsStatus(data) {
  4525.  
  4526. let primary_notifications = [
  4527. 'dm',
  4528. 'home',
  4529. 'intros',
  4530. 'register',
  4531. 'notify',
  4532. 'files'
  4533. ];
  4534. let secondary_notifications = [
  4535. 'network',
  4536. 'forums',
  4537. 'all_events',
  4538. 'pubs'
  4539. ];
  4540. let all_notifications = primary_notifications.concat(secondary_notifications);
  4541.  
  4542. let primary_available = false;
  4543. let any_available = false;
  4544.  
  4545. // Loop through all notifications and check their visibility
  4546. all_notifications.forEach(function (type) {
  4547.  
  4548. let button = document.querySelector(`.${
  4549. type
  4550. }-button`);
  4551. if (button && getComputedStyle(button).display === 'block') {
  4552.  
  4553. any_available = true;
  4554. if (primary_notifications.indexOf(type) > -1) {
  4555.  
  4556. primary_available = true;
  4557.  
  4558. }
  4559.  
  4560. }
  4561.  
  4562. });
  4563.  
  4564. // Update notification button icon based on the primary notification availability
  4565. let notificationIcon = document.querySelector('.notifications-btn-icon');
  4566. if (primary_available) {
  4567.  
  4568. notificationIcon.classList.remove('bi-exclamation-circle');
  4569. notificationIcon.classList.add('bi-exclamation-triangle');
  4570.  
  4571. } else {
  4572.  
  4573. notificationIcon.classList.remove('bi-exclamation-triangle');
  4574. notificationIcon.classList.add('bi-exclamation-circle');
  4575.  
  4576. }
  4577.  
  4578. // Update visibility of notification button and sections
  4579. let notificationsBtn = document.querySelector('.notifications-btn');
  4580. let noNotifications = document.querySelector('#no_notifications');
  4581. let notifications = document.querySelector('#notifications');
  4582. let navbarCollapse = document.querySelector('#navbar-collapse-1');
  4583.  
  4584. if (any_available) {
  4585.  
  4586. notificationsBtn.style.opacity = 1;
  4587. noNotifications.style.display = 'none';
  4588. notifications.style.display = 'block';
  4589.  
  4590. } else {
  4591.  
  4592. notificationsBtn.style.opacity = 0.5;
  4593. if (navbarCollapse) navbarCollapse.classList.remove('show');
  4594. noNotifications.style.display = 'block';
  4595. notifications.style.display = 'none';
  4596.  
  4597. }
  4598.  
  4599. // Handle specific notifications if 'data' is provided
  4600. if (typeof data !== 'undefined') {
  4601.  
  4602. data.forEach(function (nmid) {
  4603.  
  4604. sse_rmids.push(nmid);
  4605.  
  4606. // Handle regular notifications
  4607. let notification = document.querySelector(`.notification[
  4608. data-b64mid='${
  4609. nmid
  4610. }'
  4611. ]`);
  4612. if (notification) {
  4613.  
  4614. let parentId = notification.parentElement.id.split('-')[
  4615. 1
  4616. ];
  4617. sse_updateNotifications(parentId,
  4618. nmid);
  4619.  
  4620. }
  4621.  
  4622. // Special handling for forum notifications
  4623. let forumNotifications = document.querySelectorAll('.notification-forum');
  4624. forumNotifications.forEach(function (forumNotification) {
  4625.  
  4626. let fmids = decodeURIComponent(forumNotification.dataset.b64mids);
  4627. let parentId = forumNotification.parentElement.id.split('-')[
  4628. 1
  4629. ];
  4630.  
  4631. if (fmids.indexOf(nmid) > -1) {
  4632.  
  4633. let updateElem = document.querySelector(`.${
  4634. parentId
  4635. }-update`);
  4636. let fcount = Number(updateElem.innerText);
  4637. fcount--;
  4638. updateElem.innerText = fcount;
  4639.  
  4640. if (fcount < 1) {
  4641.  
  4642. let button = document.querySelector(`.${
  4643. parentId
  4644. }-button`);
  4645. button.style.display = 'none';
  4646. let subMenu = document.querySelector(`#nav-${
  4647. parentId
  4648. }-sub`);
  4649. if (subMenu) subMenu.classList.remove('show');
  4650.  
  4651. }
  4652.  
  4653. let countElem = forumNotification.querySelector('.bg-secondary');
  4654. let count = Number(countElem.innerText);
  4655. count--;
  4656. countElem.innerText = count;
  4657.  
  4658. if (count < 1) {
  4659.  
  4660. forumNotification.remove();
  4661.  
  4662. }
  4663.  
  4664. }
  4665.  
  4666. });
  4667.  
  4668. });
  4669.  
  4670. }
  4671.  
  4672. }
  4673.  
  4674. function sse_fallback() {
  4675.  
  4676. fetch('/sse')
  4677. .then(response => response.json())
  4678. .then(obj => {
  4679.  
  4680. if (!obj) return;
  4681.  
  4682. console.log('sse fallback');
  4683. console.log(obj);
  4684.  
  4685. sse_handleNotifications(obj,
  4686. false,
  4687. false);
  4688.  
  4689. })
  4690. .catch(error => {
  4691.  
  4692. console.error('Error fetching SSE data:',
  4693. error);
  4694.  
  4695. });
  4696.  
  4697. }
  4698.  
  4699. </script>
  4700.  
  4701. <div id="notifications_wrapper" class="mb-0">
  4702. <div id="no_notifications" class="d-block d-none">
  4703. Sorry,
  4704. 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>
  4705. </div>
  4706. <div id="nav-notifications-template" rel="template" class="d-none">
  4707. <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}">
  4708. <img data-src="{1}" loading="lazy" class="rounded float-start me-2 menu-img-2">
  4709. <div class="text-nowrap">
  4710. <div class="d-flex justify-content-between align-items-center lh-sm">
  4711. <div class="text-truncate pe-1">
  4712. <strong title="{2} - {3}">{
  4713. 2
  4714. }</strong>
  4715. </div>
  4716. <small class="autotime-narrow opacity-75" title="{5}"></small>
  4717. </div>
  4718. <div class="text-truncate">{
  4719. 4
  4720. }</div>
  4721. </div>
  4722. </a>
  4723. </div>
  4724. <div id="nav-notifications-forums-template" rel="template" class="d-none">
  4725. <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='{
  4726. 12
  4727. }'>
  4728. <div>
  4729. <img class="menu-img-1" data-src="{1}" loading="lazy">
  4730. <span>{
  4731. 2
  4732. }</span>
  4733. </div>
  4734. <span class="badge bg-secondary">{
  4735. 10
  4736. }</span>
  4737. </a>
  4738. </div>
  4739. <div id="notifications" class="border border-top-0 rounded navbar-nav collapse">
  4740. <div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse pubs-button">
  4741. <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">
  4742. <div>
  4743. <i class="bi bi-globe generic-icons-nav"></i>
  4744. Public Stream
  4745. </div>
  4746. <span class="badge bg-secondary pubs-update"></span>
  4747. </a>
  4748. </div>
  4749. <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">
  4750. <a class="list-group-item list-group-item-action text-decoration-none" id="nav-pubs-see-all" href="pubstream">
  4751. <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> Public stream
  4752. </a>
  4753. <div class="list-group-item list-group-item-action cursor-pointer" id="tt-pubs-only">
  4754. <i class="bi bi-funnel generic-icons-nav"></i> Show new posts only
  4755. </div>
  4756. <div class="list-group-item clearfix notifications-textinput" id="cn-pubs-only">
  4757. <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
  4758. <input id="cn-pubs-input" type="text" class="notification-filter form-control form-control-sm" placeholder="Filter by name or address">
  4759. <div id="cn-pubs-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
  4760. </div>
  4761. <div id="nav-pubs-menu" class="list-group list-group-flush"></div>
  4762. <div id="nav-pubs-loading" class="list-group-item" style="display: none;">
  4763. Loading<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  4764. </div>
  4765. </div>
  4766. </div>
  4767. </div>
  4768.  
  4769.  
  4770.  
  4771.  
  4772. </div>
  4773. </div>
  4774. <div id="region_3" class="pe-0">
  4775. <div id="right_aside_wrapper">
  4776.  
  4777. <div class="card mb-3">
  4778. <!--<h3 class="card-header">Card header</h3>-->
  4779. <img class="d-block user-select-none" width="100%" style="font-size:1.125rem;text-anchor:middle"
  4780. src="https://hub.hubzilla.hu/photo/fa3f4813-e4dc-4837-a7a6-4b86b220e970-9"></img>
  4781. <div class="card-body">
  4782. <div class="d-flex">
  4783. <div id="profile-photo-wrapper" class="bg-body-secondary overflow-hidden me-2"
  4784. style="min-width: 5rem; min-height: 5rem;">
  4785. <img class="img-thumbnail" src="https://hub.hubzilla.hu/photo/profile/m/5?rev=2024-04-01+16%3A34%3A27"
  4786. alt="Der Pepe (Hubzilla) ⁂ ⚝" style="width: 5rem; height: 5rem;">
  4787. </div>
  4788. <div class="vstack d-flex flex-column justify-content-start mt-auto mb-auto">
  4789. <div class="card-title">Der Pepe (Hubzilla) ⁂ ⚝<i class="bi bi-wifi-off text-danger ps-2"
  4790. title=""></i> </div>
  4791. <div class="card-subtitle text-muted">pepecyb&#x40;hub.hubzilla.hu</div>
  4792. </div>
  4793. </div>
  4794. </div>
  4795.  
  4796. <div class="card-body pt-0">
  4797. <p class="card-text">E-Dampfer,
  4798. Blogger,
  4799. Ungarn-Auswanderer,
  4800. Fediverse-Unterstützer,
  4801. Hunde- und Pferderetter… Vaper,
  4802. Blogger,
  4803. Emigrant to Hungary,
  4804. Fediverse Supporter,
  4805. Dog and Horse Saviour...</p>
  4806. </div>
  4807.  
  4808. <ul class="list-group list-group-flush">
  4809. <li class="list-group-item">
  4810. <dt class="location-label">Location:</dt>
  4811. <dd class="adr h-adr">
  4812. <div class="city-state-zip">
  4813. <span class="postal-code p-postal-code"></span>
  4814. <span class="locality p-locality">Nagybaracska</span>
  4815. </div>
  4816. <div class="region p-region">Bács-Kiskun</div>
  4817. <div class="country-name p-country-name">Magyarország</div>
  4818. </dd>
  4819. </li>
  4820. <li class="list-group-item">
  4821.  
  4822. <dt class="gender-label">Gender:</dt>
  4823. <dd class="p-gender">Männlich</dd>
  4824. </li>
  4825. <li class="list-group-item">
  4826.  
  4827. <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Status:</dt>
  4828. <dd class="marital-text ps-2">Verheiratet</dd>
  4829. </li>
  4830. <li class="list-group-item">
  4831. <dt class="card-link"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Homepage:</dt>
  4832. <dd class="ps-2">
  4833. <a href="https://pepecyb.hu" rel="me nofollow" >https://pepecyb.hu</a>
  4834. </dd>
  4835. </li>
  4836. </ul>
  4837. </div>
  4838.  
  4839.  
  4840. <div class="card mb-3">
  4841. <div class="card-header">
  4842. Connections
  4843. <div class="card-tools">
  4844. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  4845. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  4846. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  4847. </button>
  4848. <button type="button" class="btn btn-tool" data-lte-toggle="card-remove">
  4849. <i class="bi bi-x-lg"></i>
  4850. </button>
  4851. </div>
  4852. </div>
  4853. <!-- /.card-header -->
  4854. <div class="card-body p-0">
  4855. <div class="row text-center m-1">
  4856. <div class="col-3 p-2">
  4857. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/37250b05-6428-4934-b360-d316b0d23d70-6" alt="" title="blingbling [blingbling@federation.network]">
  4858. <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">
  4859. blingbling [
  4860. blingbling@federation.network
  4861. ]
  4862. </a>
  4863. <div class="fs-8">
  4864. </div>
  4865. </div>
  4866.  
  4867. <div class="col-3 p-2">
  4868. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7e05d060-1934-4521-b7be-ddd72c206175-6" alt="" title="loops [loops@pixelfed.social]">
  4869. <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">
  4870. loops [
  4871. loops@pixelfed.social
  4872. ]
  4873. </a>
  4874. <div class="fs-8">
  4875. </div>
  4876. </div>
  4877.  
  4878. <div class="col-3 p-2">
  4879. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [thomas@caselibre.fr]">
  4880. <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">
  4881. Papa Dragon [
  4882. thomas@caselibre.fr
  4883. ]
  4884. </a>
  4885. <div class="fs-8">
  4886. </div>
  4887. </div>
  4888.  
  4889. <div class="col-3 p-2">
  4890. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [tigerchen@klacker.org]">
  4891. <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">
  4892. Tiger_micha [
  4893. tigerchen@klacker.org
  4894. ]
  4895. </a>
  4896. <div class="fs-8">
  4897. </div>
  4898. </div>
  4899.  
  4900. <div class="col-3 p-2">
  4901. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [mumm@wizard.casa]">
  4902. <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">
  4903. Samuel Mumm [
  4904. mumm@wizard.casa
  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/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [grischa@procial.tchncs.de]">
  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=https%3A%2F%2Fprocial.tchncs.de%2Fusers%2F9lupyn1xezx48juq">
  4914. grischa [
  4915. grischa@procial.tchncs.de
  4916. ]
  4917. </a>
  4918. <div class="fs-8">
  4919. </div>
  4920. </div>
  4921.  
  4922. <div class="col-3 p-2">
  4923. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [steffen@www.top-netz.eu]">
  4924. <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">
  4925. Steffen [
  4926. steffen@www.top-netz.eu
  4927. ]
  4928. </a>
  4929. <div class="fs-8">
  4930. </div>
  4931. </div>
  4932.  
  4933. <div class="col-3 p-2">
  4934. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [ulrich@hub.netzgemeinde.eu]">
  4935. <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">
  4936. Ulrich (Hubzilla) [
  4937. ulrich@hub.netzgemeinde.eu
  4938. ]
  4939. </a>
  4940. <div class="fs-8">
  4941. </div>
  4942. </div>
  4943.  
  4944. <div class="col-3 p-2">
  4945. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [s_hentzschel@social.agenedia.com]">
  4946. <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">
  4947. Sören Hentzschel 🦊 [
  4948. s_hentzschel@social.agenedia.com
  4949. ]
  4950. </a>
  4951. <div class="fs-8">
  4952. </div>
  4953. </div>
  4954.  
  4955. <div class="col-3 p-2">
  4956. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [Asterix_Archiv@troet.cafe]">
  4957. <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">
  4958. Asterix Archiv - Comedix.de 💎 [
  4959. Asterix_Archiv@troet.cafe
  4960. ]
  4961. </a>
  4962. <div class="fs-8">
  4963. </div>
  4964. </div>
  4965.  
  4966. <div class="col-3 p-2">
  4967. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [Em0nM4stodon@infosec.exchange]">
  4968. <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">
  4969. Em :official_verified: [
  4970. Em0nM4stodon@infosec.exchange
  4971. ]
  4972. </a>
  4973. <div class="fs-8">
  4974. </div>
  4975. </div>
  4976.  
  4977. <div class="col-3 p-2">
  4978. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [doris@www.top-netz.eu]">
  4979. <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">
  4980. Doris [
  4981. doris@www.top-netz.eu
  4982. ]
  4983. </a>
  4984. <div class="fs-8">
  4985. </div>
  4986. </div>
  4987.  
  4988. <div class="col-3 p-2">
  4989. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [holarse@mastodon.social]">
  4990. <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">
  4991. Holarse - Spielen unter Linux [
  4992. holarse@mastodon.social
  4993. ]
  4994. </a>
  4995. <div class="fs-8">
  4996. </div>
  4997. </div>
  4998.  
  4999. <div class="col-3 p-2">
  5000. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [chris@im.allmendenetz.de]">
  5001. <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">
  5002. 𝓒𝓱𝓻𝓲𝓼 [
  5003. chris@im.allmendenetz.de
  5004. ]
  5005. </a>
  5006. <div class="fs-8">
  5007. </div>
  5008. </div>
  5009.  
  5010. <div class="col-3 p-2">
  5011. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [Umweltbundesamt@social.bund.de]">
  5012. <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">
  5013. Umweltbundesamt [
  5014. Umweltbundesamt@social.bund.de
  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/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [hubzillauserssp@zotum.net]">
  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=AkEFH6xk6670ZiBFJ3Q2UIV_MSVnwUZc7_HgmDV8vdFujPf6D3CL-kOZ49CpaEFJT8_CI4oxkqgjslcwnA1zKA">
  5024. Hubzilla Users Support [
  5025. hubzillauserssp@zotum.net
  5026. ]
  5027. </a>
  5028. <div class="fs-8">
  5029. </div>
  5030. </div>
  5031.  
  5032. <div class="col-3 p-2">
  5033. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [elmussol@streams.elsmussols.net]">
  5034. <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">
  5035. elmussol [
  5036. elmussol@streams.elsmussols.net
  5037. ]
  5038. </a>
  5039. <div class="fs-8">
  5040. </div>
  5041. </div>
  5042.  
  5043. <div class="col-3 p-2">
  5044. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [sk@hub.utsukta.org]">
  5045. <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">
  5046. SK [
  5047. sk@hub.utsukta.org
  5048. ]
  5049. </a>
  5050. <div class="fs-8">
  5051. </div>
  5052. </div>
  5053.  
  5054. <div class="col-3 p-2">
  5055. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [witcraft@hub.hubzilla.de]">
  5056. <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">
  5057. Witcraft (Hubzilla) [
  5058. witcraft@hub.hubzilla.de
  5059. ]
  5060. </a>
  5061. <div class="fs-8">
  5062. </div>
  5063. </div>
  5064.  
  5065. <div class="col-3 p-2">
  5066. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [hubzilla@libera.site]">
  5067. <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">
  5068. Hubzilla Statistics [
  5069. hubzilla@libera.site
  5070. ]
  5071. </a>
  5072. <div class="fs-8">
  5073. </div>
  5074. </div>
  5075.  
  5076. <div class="col-3 p-2">
  5077. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [openjur@legal.social]">
  5078. <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">
  5079. openJur [
  5080. openjur@legal.social
  5081. ]
  5082. </a>
  5083. <div class="fs-8">
  5084. </div>
  5085. </div>
  5086.  
  5087. <div class="col-3 p-2">
  5088. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [s_mumm@iceshrimp.de]">
  5089. <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">
  5090. Samuel Mumm [
  5091. s_mumm@iceshrimp.de
  5092. ]
  5093. </a>
  5094. <div class="fs-8">
  5095. </div>
  5096. </div>
  5097.  
  5098. <div class="col-3 p-2">
  5099. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [norvegan@zotum.net]">
  5100. <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">
  5101. NorVegan [
  5102. norvegan@zotum.net
  5103. ]
  5104. </a>
  5105. <div class="fs-8">
  5106. </div>
  5107. </div>
  5108.  
  5109. <div class="col-3 p-2">
  5110. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [jrp@hub.kliklak.net]">
  5111. <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">
  5112. *_jayrope [
  5113. jrp@hub.kliklak.net
  5114. ]
  5115. </a>
  5116. <div class="fs-8">
  5117. </div>
  5118. </div>
  5119.  
  5120. <div class="col-3 p-2">
  5121. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [tylers@muenster.im]">
  5122. <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">
  5123. Wild auf Anfrage [
  5124. tylers@muenster.im
  5125. ]
  5126. </a>
  5127. <div class="fs-8">
  5128. </div>
  5129. </div>
  5130.  
  5131. <div class="col-3 p-2">
  5132. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [tux@anonsys.net]">
  5133. <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">
  5134. Tuxi ⁂ [
  5135. tux@anonsys.net
  5136. ]
  5137. </a>
  5138. <div class="fs-8">
  5139. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  5140. </div>
  5141. </div>
  5142.  
  5143. <div class="col-3 p-2">
  5144. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [hiker@social.fedcast.ch]">
  5145. <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">
  5146. Hiker [
  5147. hiker@social.fedcast.ch
  5148. ]
  5149. </a>
  5150. <div class="fs-8">
  5151. </div>
  5152. </div>
  5153.  
  5154. <div class="col-3 p-2">
  5155. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [NitrumRider@mastodon.social]">
  5156. <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">
  5157. NitrumRider [
  5158. NitrumRider@mastodon.social
  5159. ]
  5160. </a>
  5161. <div class="fs-8">
  5162. </div>
  5163. </div>
  5164.  
  5165. <div class="col-3 p-2">
  5166. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [sh@hub.hayfidelity.de]">
  5167. <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">
  5168. Stefan Haydn [
  5169. sh@hub.hayfidelity.de
  5170. ]
  5171. </a>
  5172. <div class="fs-8">
  5173. </div>
  5174. </div>
  5175.  
  5176. <div class="col-3 p-2">
  5177. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [jaecds@metalhead.club]">
  5178. <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">
  5179. JaeCdS [
  5180. jaecds@metalhead.club
  5181. ]
  5182. </a>
  5183. <div class="fs-8">
  5184. </div>
  5185. </div>
  5186.  
  5187. <div class="col-3 p-2">
  5188. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [heiseonline_TopNews@social.heise.de]">
  5189. <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">
  5190. heise online Top News [
  5191. heiseonline_TopNews@social.heise.de
  5192. ]
  5193. </a>
  5194. <div class="fs-8">
  5195. </div>
  5196. </div>
  5197.  
  5198. <div class="col-3 p-2">
  5199. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [dm42@my.hosted.social]">
  5200. <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">
  5201. M. Dent [
  5202. dm42@my.hosted.social
  5203. ]
  5204. </a>
  5205. <div class="fs-8">
  5206. </div>
  5207. </div>
  5208.  
  5209. <div class="col-3 p-2">
  5210. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [wikimediaDE@social.wikimedia.de]">
  5211. <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">
  5212. wikimediaDE [
  5213. wikimediaDE@social.wikimedia.de
  5214. ]
  5215. </a>
  5216. <div class="fs-8">
  5217. </div>
  5218. </div>
  5219.  
  5220. <div class="col-3 p-2">
  5221. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [sammumm@loma.ml]">
  5222. <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">
  5223. Samuel Mumm [
  5224. sammumm@loma.ml
  5225. ]
  5226. </a>
  5227. <div class="fs-8">
  5228. </div>
  5229. </div>
  5230.  
  5231. <div class="col-3 p-2">
  5232. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [Carlos@moppels.bar]">
  5233. <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">
  5234. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [
  5235. Carlos@moppels.bar
  5236. ]
  5237. </a>
  5238. <div class="fs-8">
  5239. </div>
  5240. </div>
  5241.  
  5242. <div class="col-3 p-2">
  5243. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [hubzilla-development@zotlabs.org]">
  5244. <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">
  5245. zotlabs.org | Hubzilla Development [
  5246. hubzilla-development@zotlabs.org
  5247. ]
  5248. </a>
  5249. <div class="fs-8">
  5250. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  5251. </div>
  5252. </div>
  5253.  
  5254. </div>
  5255. <!-- /.users-list -->
  5256. </div>
  5257. <!-- /.card-body -->
  5258. <div class="card-footer text-center">
  5259. <a href="viewconnections/pepecyb"
  5260. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  5261. </div>
  5262. <!-- /.card-footer -->
  5263. </div>
  5264.  
  5265.  
  5266. <div id="pmenu-2" class="pmenu card mb-3">
  5267. <div class="card-body">
  5268. <ul
  5269. class="pmenu-body nav nav-pills flex-column">
  5270. <li id="pmenu-item-3" class="nav-item pmenu-item">
  5271. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  5272. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  5273. </li>
  5274. <li id="pmenu-item-9" class="nav-item pmenu-item">
  5275. <a href="https://hzhelp.pepecyb.hu/"
  5276. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  5277. </li>
  5278. </ul>
  5279. <div class="pmenu-end"></div>
  5280. </div>
  5281. </div>
  5282.  
  5283.  
  5284. <script>
  5285.  
  5286. function toggle_posted_date_button() {
  5287.  
  5288. if($('#posted-date-dropdown').is(':visible')) {
  5289.  
  5290. $('#posted-date-icon').removeClass('bi-chevron-up');
  5291. $('#posted-date-icon').addClass('bi-chevron-down');
  5292. $('#posted-date-dropdown').hide();
  5293.  
  5294. }
  5295. else {
  5296.  
  5297. $('#posted-date-icon').addClass('bi-chevron-up');
  5298. $('#posted-date-icon').removeClass('bi-chevron-down');
  5299. $('#posted-date-dropdown').show();
  5300.  
  5301. }
  5302.  
  5303. }
  5304. </script>
  5305.  
  5306.  
  5307. <div id="datebrowse-sidebar" class="card mb-3">
  5308. <div class="card-header">
  5309. Archives
  5310. </div>
  5311. <div class="card-body">
  5312. <script>function dateSubmit(dateurl) {
  5313. window.location.href = dateurl;
  5314. } </script>
  5315. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  5316. <li class="nav-item" id="posted-date-selector-year-2025">
  5317. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2025'); return false;">2025</a>
  5318. </li>
  5319. <div id="posted-date-selector-2025" style="display: none;">
  5320. <ul class="posted-date-selector-months nav nav-pills flex-column">
  5321. <li class="nav-item">
  5322. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31'); return false;">March</a>
  5323. </li>
  5324. <li class="nav-item">
  5325. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28'); return false;">February</a>
  5326. </li>
  5327. <li class="nav-item">
  5328. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31'); return false;">January</a>
  5329. </li>
  5330. </ul>
  5331. </div>
  5332. <li class="nav-item" id="posted-date-selector-year-2024">
  5333. <a class="nav-link" href="#" onclick="openClose('posted-date-selector-2024'); return false;">2024</a>
  5334. </li>
  5335. <div id="posted-date-selector-2024" style="display: none;">
  5336. <ul class="posted-date-selector-months nav nav-pills flex-column">
  5337. <li class="nav-item">
  5338. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31'); return false;">December</a>
  5339. </li>
  5340. <li class="nav-item">
  5341. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30'); return false;">November</a>
  5342. </li>
  5343. <li class="nav-item">
  5344. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31'); return false;">October</a>
  5345. </li>
  5346. <li class="nav-item">
  5347. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30'); return false;">September</a>
  5348. </li>
  5349. <li class="nav-item">
  5350. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31'); return false;">August</a>
  5351. </li>
  5352. <li class="nav-item">
  5353. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31'); return false;">July</a>
  5354. </li>
  5355. <li class="nav-item">
  5356. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30'); return false;">June</a>
  5357. </li>
  5358. <li class="nav-item">
  5359. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31'); return false;">May</a>
  5360. </li>
  5361. <li class="nav-item">
  5362. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30'); return false;">April</a>
  5363. </li>
  5364. <li class="nav-item">
  5365. <a class="nav-link" href="#" onclick="dateSubmit('https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31'); return false;">March</a>
  5366. </li>
  5367. </ul>
  5368. </div>
  5369. </ul>
  5370. </div>
  5371. </div>
  5372.  
  5373. <div id="categories-sidebar" class="card mb-3">
  5374. <div class="card-header">
  5375. Categories
  5376. </div>
  5377. <div class="card-body">
  5378. <div id="categories-sidebar-desc"></div>
  5379.  
  5380. <ul class="nav nav-pills flex-column">
  5381. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  5382. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  5383. class="nav-link">Dampfdruck-Presse</a></li>
  5384. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  5385. class="nav-link">Dampfen</a></li>
  5386. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  5387. class="nav-link">Dokumentation</a></li>
  5388. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  5389. class="nav-link">Fediverse</a></li>
  5390. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  5391. class="nav-link">Firefish</a></li>
  5392. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  5393. class="nav-link">Friendica</a></li>
  5394. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  5395. class="nav-link">Gastbeitrag</a></li>
  5396. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  5397. class="nav-link">go</a></li>
  5398. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  5399. class="nav-link">golang</a></li>
  5400. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  5401. class="nav-link">Hilfe</a></li>
  5402. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  5403. class="nav-link">Hubzilla</a></li>
  5404. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  5405. class="nav-link">Hubzilla-Häppchen</a></li>
  5406. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  5407. class="nav-link">Hubzilla-Hilfe</a></li>
  5408. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  5409. class="nav-link">Hubzillahäppchen</a></li>
  5410. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  5411. class="nav-link">Kommentar</a></li>
  5412. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  5413. class="nav-link">Pepes Microblog</a></li>
  5414. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  5415. class="nav-link">Pfrunzlers Weekly</a></li>
  5416. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  5417. class="nav-link">Politik</a></li>
  5418. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  5419. class="nav-link">Support</a></li>
  5420. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  5421. class="nav-link">WHO</a></li>
  5422. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  5423. class="nav-link">Wochenblick</a></li>
  5424. </ul>
  5425. </div>
  5426. </div>
  5427.  
  5428. <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>
  5429. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  5430. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  5431. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  5432. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  5433. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  5434. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  5435. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  5436. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  5437. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  5438. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  5439. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  5440. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  5441. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  5442. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  5443. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  5444. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  5445. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  5446. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  5447. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  5448. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  5449. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  5450. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  5451. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  5452. </div></div>
  5453.  
  5454. </div>
  5455. </div>
  5456. </div>
  5457. </div>
  5458. </div>
  5459. </div>
  5460. </div>
  5461. </main>
  5462. <!-- /.content-wrapper -->
  5463.  
  5464. </div>
  5465. <!-- ./wrapper -->
  5466. <script>
  5467. // Color Mode Toggler
  5468. (() => {
  5469.  
  5470. "use strict";
  5471.  
  5472. const storedTheme = localStorage.getItem("theme");
  5473.  
  5474. const getPreferredTheme = () => {
  5475.  
  5476. if (storedTheme) {
  5477.  
  5478. return storedTheme;
  5479.  
  5480. }
  5481.  
  5482. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  5483. "dark" :
  5484. "light";
  5485.  
  5486. };
  5487.  
  5488. const setTheme = function(theme) {
  5489.  
  5490. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  5491.  
  5492. document.documentElement.setAttribute("data-bs-theme",
  5493. "dark");
  5494.  
  5495. } else {
  5496.  
  5497. document.documentElement.setAttribute("data-bs-theme",
  5498. theme);
  5499.  
  5500. }
  5501.  
  5502. };
  5503.  
  5504. const showActiveTheme = (theme,
  5505. focus = false) => {
  5506.  
  5507. const themeSwitcher = document.querySelector("#bd-theme");
  5508.  
  5509. if (!themeSwitcher) {
  5510.  
  5511. return;
  5512.  
  5513. }
  5514.  
  5515. const btnToActive = document.querySelector(`[
  5516. data-bs-theme-value="${theme}"
  5517. ]`);
  5518. const inputToCheck = document.querySelector(`#bd-theme input[
  5519. data-bs-theme-value="${theme}"
  5520. ]`);
  5521.  
  5522. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  5523.  
  5524. element.classList.remove("active");
  5525. element.setAttribute("aria-pressed",
  5526. "false");
  5527.  
  5528. }
  5529.  
  5530. btnToActive.classList.add("active");
  5531. btnToActive.setAttribute("aria-pressed",
  5532. "true");
  5533.  
  5534. // Update the checked state of the radio button
  5535. if (inputToCheck) {
  5536.  
  5537. inputToCheck.checked = true;
  5538.  
  5539. }
  5540.  
  5541. if (focus) {
  5542.  
  5543. btnToActive.focus();
  5544.  
  5545. }
  5546.  
  5547. };
  5548.  
  5549. setTheme(getPreferredTheme());
  5550.  
  5551. window
  5552. .matchMedia("(prefers-color-scheme: dark)")
  5553. .addEventListener("change",
  5554. () => {
  5555.  
  5556. if (storedTheme !== "light" || storedTheme !== "dark") {
  5557.  
  5558. setTheme(getPreferredTheme());
  5559.  
  5560. }
  5561.  
  5562. });
  5563.  
  5564. window.addEventListener("DOMContentLoaded",
  5565. () => {
  5566.  
  5567. showActiveTheme(getPreferredTheme());
  5568.  
  5569. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  5570.  
  5571. toggle.addEventListener("click",
  5572. () => {
  5573.  
  5574. const theme = toggle.getAttribute("data-bs-theme-value");
  5575. localStorage.setItem("theme",
  5576. theme);
  5577. setTheme(theme);
  5578. showActiveTheme(theme,
  5579. true);
  5580.  
  5581. });
  5582.  
  5583. }
  5584.  
  5585. });
  5586.  
  5587. })();
  5588. </script>
  5589. <script>
  5590. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  5591. const Default = {
  5592.  
  5593. scrollbarTheme: "os-theme-light",
  5594.  
  5595. scrollbarAutoHide: "leave",
  5596.  
  5597. scrollbarClickScroll: true,
  5598.  
  5599.  
  5600. };
  5601. document.addEventListener("DOMContentLoaded",
  5602. function() {
  5603.  
  5604. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  5605. if (
  5606. sidebarWrapper &&
  5607. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  5608. ) {
  5609.  
  5610. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper,
  5611. {
  5612.  
  5613. scrollbars: {
  5614.  
  5615. theme: Default.scrollbarTheme,
  5616.  
  5617. autoHide: Default.scrollbarAutoHide,
  5618.  
  5619. clickScroll: Default.scrollbarClickScroll,
  5620.  
  5621.  
  5622. },
  5623.  
  5624.  
  5625. });
  5626.  
  5627. }
  5628.  
  5629. });
  5630. </script> <!--end::OverlayScrollbars Configure-->
  5631. </body>
  5632.  
  5633. </html>
  5634.  
  5635. \Zotlabs\Lib\ActivityStreams::__set_state(array(
  5636. 'raw' => '<!DOCTYPE html>
  5637. <html lang="en">
  5638.  
  5639. <head>
  5640. <meta charset="utf-8">
  5641. <meta name="viewport" content="width=device-width, initial-scale=1">
  5642. <title> - Der Pepe (Hubzilla) ⁂ ⚝ - pepecyb@hub.hubzilla.hu</title>
  5643. <script>
  5644. var baseurl = "https://hub.hubzilla.hu";
  5645. </script>
  5646. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  5647. <base href="https://hub.hubzilla.hu/" />
  5648. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=0" />
  5649.  
  5650. <meta name="application-name" content="hubzilla" />
  5651. <meta name="generator" content="hubzilla" />
  5652. <meta name="theme-color" content="" />
  5653.  
  5654. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/hilite/Text_Highlighter/sample.css?v=10.0.8" type="text/css" media="screen">
  5655. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/b2tbtn/view/css/b2tbtn.css?v=10.0.8" type="text/css" media="screen">
  5656. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/lib/photoswipe5/dist/photoswipe.css?v=10.0.8" type="text/css" media="screen">
  5657. <link rel="stylesheet" href="https://hub.hubzilla.hu/addon/gallery/view/css/gallery.css?v=10.0.8" type="text/css" media="screen">
  5658. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/jRange/jquery.range.css?v=10.0.8" type="text/css" media="screen">
  5659. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/conversation.css?v=10.0.8" type="text/css" media="screen">
  5660. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/widgets.css?v=10.0.8" type="text/css" media="screen">
  5661. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/css/colorbox.css?v=10.0.8" type="text/css" media="screen">
  5662. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/justifiedGallery/justifiedGallery.min.css?v=10.0.8" type="text/css" media="screen">
  5663. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.css?v=10.0.8" type="text/css" media="screen">
  5664. <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">
  5665. <link rel="stylesheet" href="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.css?v=10.0.8" type="text/css" media="screen">
  5666. <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">
  5667. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/adminlte.css?v=10.0.8" type="text/css" media="screen">
  5668. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/bootstrap.min.css?v=10.0.8" type="text/css" media="screen">
  5669. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/overlayscrollbar.min.css?v=10.0.8" type="text/css" media="screen">
  5670. <link rel="stylesheet" href="https://hub.hubzilla.hu/view/theme/cosmo/css/default.css?v=10.0.8" type="text/css" media="screen">
  5671. <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">
  5672.  
  5673. <script>
  5674.  
  5675. var aStr = {
  5676.  
  5677. \'delitem\' : "Delete this item?",
  5678. \'itemdel\' : "Item deleted",
  5679. \'comment\' : "Comment",
  5680. \'showmore\' : "show all",
  5681. \'showfewer\' : "show less",
  5682. \'divgrowmore\' : "expand",
  5683. \'divgrowless\' : "collapse",
  5684. \'pwshort\' : "Password too short",
  5685. \'pwnomatch\' : "Passwords do not match",
  5686. \'everybody\' : "everybody",
  5687. \'passphrase\' : "Secret Passphrase",
  5688. \'passhint\' : "Passphrase hint",
  5689. \'permschange\' : "Notice: Permissions have changed but have not yet been submitted.",
  5690. \'closeAll\' : "close all",
  5691. \'nothingnew\' : "Nothing new here",
  5692. \'rating_desc\' : "Rate This Channel (this is public)",
  5693. \'rating_val\' : "Rating",
  5694. \'rating_text\' : "Describe (optional)",
  5695. \'submit\' : "Submit",
  5696. \'linkurl\' : "Please enter a link URL",
  5697. \'leavethispage\' : "Unsaved changes. Are you sure you wish to leave this page?",
  5698. \'location\' : "Location",
  5699. \'lovely\' : "lovely",
  5700. \'wonderful\' : "wonderful",
  5701. \'fantastic\' : "fantastic",
  5702. \'great\' : "great",
  5703. \'nick_invld1\' : "Your chosen nickname was either already taken or not valid. Please use our suggestion (",
  5704. \'nick_invld2\' : ") or enter a new one.",
  5705. \'nick_valid\' : "Thank you, this nickname is valid.",
  5706. \'name_empty\' : "A channel name is required.",
  5707. \'name_ok1\' : "This is a ",
  5708. \'name_ok2\' : " channel name",
  5709. \'to_reply\' : "Back to reply",
  5710. \'pinned\' : "Pinned",
  5711. \'pin_item\' : "Pin to the top",
  5712. \'unpin_item\' : "Unpin from the top",
  5713.  
  5714. \'monthNames\' : [ "January","February","March","April","May","June","July","August","September","October","November","December" ],
  5715. \'monthNamesShort\' : [ "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" ],
  5716. \'dayNames\' : ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
  5717. \'dayNamesShort\' : ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
  5718. \'today\' : "today",
  5719. \'month\' : "month",
  5720. \'week\' : "week",
  5721. \'day\' : "day",
  5722. \'allday\' : "All day",
  5723.  
  5724. // mod cloud
  5725. \'download_info\' : "Please stand by while your download is being prepared.",
  5726.  
  5727. // mod register
  5728. \'email_not_valid\' : "Email address not valid",
  5729. \'email_required\' : "Required"
  5730.  
  5731. };
  5732.  
  5733. </script>
  5734.  
  5735.  
  5736. <script src="https://hub.hubzilla.hu/view/js/jquery.js?v=10.0.8"></script>
  5737. <script src="https://hub.hubzilla.hu/library/datetimepicker/jquery.datetimepicker.js?v=10.0.8"></script>
  5738. <script src="https://hub.hubzilla.hu/library/justifiedGallery/jquery.justifiedGallery.min.js?v=10.0.8"></script>
  5739. <script src="https://hub.hubzilla.hu/library/sprintf.js/dist/sprintf.min.js?v=10.0.8"></script>
  5740. <script src="https://hub.hubzilla.hu/library/textcomplete/textcomplete.min.js?v=10.0.8"></script>
  5741. <script src="https://hub.hubzilla.hu/view/js/autocomplete.js?v=10.0.8"></script>
  5742. <script src="https://hub.hubzilla.hu/library/readmore.js/readmore.js?v=10.0.8"></script>
  5743. <script src="https://hub.hubzilla.hu/library/sjcl/sjcl.js?v=10.0.8"></script>
  5744. <script src="https://hub.hubzilla.hu/library/sodium-plus/dist/sodium-plus.min.js?v=10.0.8"></script>
  5745. <script src="https://hub.hubzilla.hu/view/js/acl.js?v=10.0.8"></script>
  5746. <script src="https://hub.hubzilla.hu/view/js/webtoolkit.base64.js?v=10.0.8"></script>
  5747. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/main.js?v=10.0.8"></script>
  5748. <script src="https://hub.hubzilla.hu/view/js/crypto.js?v=10.0.8"></script>
  5749. <script src="https://hub.hubzilla.hu/library/jRange/jquery.range.js?v=10.0.8"></script>
  5750. <script src="https://hub.hubzilla.hu/library/colorbox/jquery.colorbox-min.js?v=10.0.8"></script>
  5751. <script src="https://hub.hubzilla.hu/library/jquery.AreYouSure/jquery.are-you-sure.js?v=10.0.8"></script>
  5752. <script src="https://hub.hubzilla.hu/library/tableofcontents/jquery.toc.js?v=10.0.8"></script>
  5753. <script src="https://hub.hubzilla.hu/library/Sortable/Sortable.min.js?v=10.0.8"></script>
  5754. <script src="https://hub.hubzilla.hu/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js?v=10.0.8"></script>
  5755. <script src="https://hub.hubzilla.hu/library/bootbox/bootbox.min.js?v=10.0.8"></script>
  5756. <script src="https://hub.hubzilla.hu/library/bootstrap-tagsinput/bootstrap-tagsinput.js?v=10.0.8"></script>
  5757. <script src="https://hub.hubzilla.hu/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js?v=10.0.8"></script>
  5758. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/adminlte.min.js?v=10.0.8"></script>
  5759. <script src="https://hub.hubzilla.hu/view/theme/cosmo/js/overlayscrollbar.min.js?v=10.0.8"></script>
  5760.  
  5761. <link rel="alternate" type="application/atom+xml" title="Posts and comments" href="https://hub.hubzilla.hu/feed/pepecyb" />
  5762. <link rel="alternate" type="application/atom+xml" title="Only posts" href="https://hub.hubzilla.hu/feed/pepecyb?f=&top=1" />
  5763. <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" />
  5764. <link rel="manifest" href="/manifest.json" />
  5765. <link rel="shortcut icon" href="https://hub.hubzilla.hu/photo/profile/m/5" />
  5766. <link rel="apple-touch-icon" href="/images/app/hz-192.png" />
  5767. <link rel="search" href="https://hub.hubzilla.hu/opensearch" type="application/opensearchdescription+xml" title="Search Whoville (Hubzilla)" />
  5768.  
  5769.  
  5770. <script>
  5771. var lang = \'en\';
  5772. var updateInterval = 80000;
  5773. var sse_enabled = 0;
  5774. var localUser = false;
  5775. var zid = null;
  5776. var justifiedGalleryActive = false;
  5777. var channelId = 5; var preloadImages = 0;
  5778. var auto_save_draft = true;
  5779. var module = \'channel\';</script>
  5780.  
  5781.  
  5782.  
  5783. <meta name="keywords" content="ungarn,hungary,magyarorsz&aacute;g,vape,linux,gitarre,guitar,selfhost,s04,discworld,scheibenwelt,pratchett,hubzilla,pfrunzel,firefish,fediverse" />
  5784. <meta property="og:title" content="Der Pepe (Hubzilla) ⁂ ⚝">
  5785. <meta property="og:image" content="https://hub.hubzilla.hu/photo/profile/l/5">
  5786. <meta property="og:image:type" content="image/png">
  5787. <meta property="og:description" content="@Der Pepe (Forte) ⁂ ⚝ Test-Posting zur Diagnose">
  5788. <meta property="og:type" content="article">
  5789. <script>
  5790.  
  5791. var bParam_cmd = "https://hub.hubzilla.hu/update/channel";
  5792.  
  5793. var conv_mode = \'channel\';
  5794.  
  5795. var page_mode = \'client\';
  5796.  
  5797. var bParam_uid = 5;
  5798. var bParam_gid = 0;
  5799. var bParam_cid = 0;
  5800. var bParam_cmin = (-1);
  5801. var bParam_cmax = (-1);
  5802. var bParam_star = 0;
  5803. var bParam_liked = 0;
  5804. var bParam_conv = 0;
  5805. var bParam_spam = 0;
  5806. var bParam_new = 0;
  5807. var bParam_page = 1;
  5808. var bParam_wall = 1;
  5809. var bParam_list = 0;
  5810. var bParam_fh = 0;
  5811. var bParam_dm = 0;
  5812.  
  5813. var bParam_search = "";
  5814. var bParam_xchan = "";
  5815. var bParam_order = "post";
  5816. var bParam_file = "";
  5817. var bParam_cats = "";
  5818. var bParam_tags = "";
  5819. var bParam_dend = "";
  5820. var bParam_dbegin = "";
  5821. var bParam_mid = "4c683a95-be61-4b2a-a7b4-366e37085cb1";
  5822. var bParam_verb = "";
  5823. var bParam_net = "";
  5824. var bParam_pf = "";
  5825. var bParam_unseen = "";
  5826.  
  5827. function buildCmd() {
  5828. let udargs = ((page_load) ? "/load" : "");
  5829. let bCmd = bParam_cmd + udargs;
  5830.  
  5831. if(bParam_uid) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "p=" + bParam_uid;
  5832. if(bParam_cmin != (-1)) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cmin=" + bParam_cmin;
  5833. if(bParam_cmax != (-1)) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cmax=" + bParam_cmax;
  5834. if(bParam_gid != 0) { bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "gid=" + bParam_gid; } else
  5835. if(bParam_cid != 0) { bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cid=" + bParam_cid; }
  5836. if(bParam_star != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "star=" + bParam_star;
  5837. if(bParam_liked != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "liked=" + bParam_liked;
  5838. if(bParam_conv!= 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "conv=" + bParam_conv;
  5839. if(bParam_spam != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "spam=" + bParam_spam;
  5840. if(bParam_new != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "new=" + bParam_new;
  5841. if(bParam_wall != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "wall=" + bParam_wall;
  5842. if(bParam_list != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "list=" + bParam_list;
  5843. if(bParam_fh != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "fh=" + bParam_fh;
  5844. if(bParam_dm != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dm=" + bParam_dm;
  5845. if(bParam_search != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "search=" + bParam_search;
  5846. if(bParam_xchan != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "xchan=" + bParam_xchan;
  5847. if(bParam_order != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "order=" + bParam_order;
  5848. if(bParam_file != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "file=" + bParam_file;
  5849. if(bParam_cats != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "cat=" + bParam_cats;
  5850. if(bParam_tags != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "tag=" + bParam_tags;
  5851. if(bParam_dend != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dend=" + bParam_dend;
  5852. if(bParam_dbegin != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "dbegin=" + bParam_dbegin;
  5853. if(bParam_mid != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "mid=" + bParam_mid;
  5854. if(bParam_verb != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "verb=" + bParam_verb;
  5855. if(bParam_net != "") bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "net=" + bParam_net;
  5856. if(bParam_page != 1) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "page=" + bParam_page;
  5857. if(bParam_pf != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "pf=" + bParam_pf;
  5858. if(bParam_unseen != 0) bCmd = bCmd + ((bCmd.includes(\'?\')) ? \'&\' : \'?\') + "unseen=" + bParam_unseen;
  5859. return(bCmd);
  5860. }
  5861.  
  5862. </script>
  5863.  
  5864. <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>
  5865. </head>
  5866.  
  5867. <body class="layout-fixed sidebar-expand-md sidebar-mini bg-body-tertiary app-loaded sidebar-open">
  5868. <div class="app-wrapper">
  5869.  
  5870. <header><div id="toast-container" class="vstack gap-3 m-3 position-fixed bottom-0 end-0"></div>
  5871. </header>
  5872. <nav class="app-header navbar navbar-expand bg-body border-0 sticky-top"> <!--begin::Container-->
  5873. <div class="container-fluid"> <!--begin::Start Navbar Links-->
  5874. <ul class="navbar-nav">
  5875. <li class="nav-item">
  5876. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"><i class="bi bi-layout-sidebar"></i></a>
  5877. </li>
  5878. </ul>
  5879. <ul class="navbar-nav">
  5880. </ul>
  5881.  
  5882. <!-- Right navbar links -->
  5883. <ul class="navbar-nav ml-auto">
  5884. <!-- App settings icon-->
  5885.  
  5886. <!-- Navbar Search -->
  5887. <li class="nav-item d-none d-md-block">
  5888. <div class="navbar-search-block">
  5889. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  5890. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  5891. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  5892. onblur="closeMenu(\'nav-search\'); openMenu(\'nav-search-btn\');" />
  5893. </form>
  5894. </div>
  5895. </li>
  5896. <!-- notificattion button for smaller screens-->
  5897. <li id="notifications-btn" class="nav-item d-md-none">
  5898. <a class="nav-link notifications-btn" id="notifications-btn-icon" href="#"><i class="bi bi-exclamation-circle notifications-btn-icon generic-icons"></i></a>
  5899. </li>
  5900. <script>
  5901. document.getElementById(\'notifications-btn\').addEventListener(\'click\', function (event) {
  5902. event.preventDefault(); // Prevent default link behavior
  5903. });
  5904. </script>
  5905.  
  5906.  
  5907. <!-- user dowpdown menu-->
  5908. <!--end::User Menu Dropdown-->
  5909. <li class="nav-item mt-1 px-1">
  5910. <a class="btn btn-primary btn-sm" href="login" title="Sign in">Login</a>
  5911. </li>
  5912. <li class="nav-item mt-1 px-1">
  5913. <a class="btn btn-success btn-sm" href="register" title="Create an account">Register</a>
  5914. </li>
  5915.  
  5916. <!-- right sidebar button on smaller screen-->
  5917. <li class="nav-item">
  5918. <a class="nav-link d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive"
  5919. aria-controls="offcanvasResponsive"><i class="bi bi-layout-text-sidebar"></i></a>
  5920. </li>
  5921.  
  5922. </ul> <!--end::End Navbar Links-->
  5923. </div> <!--end::Container-->
  5924. </nav>
  5925.  
  5926.  
  5927. <!--begin::Sidebar-->
  5928. <aside class="app-sidebar bg-dark shadow" data-bs-theme="dark">
  5929. <!--begin::Sidebar Brand-->
  5930. <div class="sidebar-brand">
  5931. <!--begin::Brand Link-->
  5932. <a href="/" class="brand-link">
  5933. <!--begin::Brand Image-->
  5934. <!-- <img
  5935. src="./assets/img/AdminLTELogo.png"
  5936. alt="U"
  5937. class="brand-image opacity-75 shadow"
  5938. /> -->
  5939. <!--end::Brand Image-->
  5940. <!--begin::Brand Text-->
  5941. <span class="brand-text fw-light">Whoville</span>
  5942. <!--end::Brand Text-->
  5943. </a>
  5944. <!--end::Brand Link-->
  5945. </div>
  5946. <!--end::Sidebar Brand-->
  5947. <!--begin::Sidebar Wrapper-->
  5948. <div class="sidebar-wrapper">
  5949. <nav class="mt-2">
  5950. <!--begin::Sidebar Menu-->
  5951. <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
  5952. <li class="nav-header pb-3 pt-1">
  5953. <div id="bd-theme" class="btn-group" role="group" aria-label="Basic radio toggle button group">
  5954. <input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked
  5955. data-bs-theme-value="auto">
  5956. <label class="btn btn-sm btn-outline-primary" for="btnradio1"><i
  5957. class="bi bi-circle-half me-2"></i>Auto</label>
  5958.  
  5959. <input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off"
  5960. data-bs-theme-value="dark">
  5961. <label class="btn btn-sm btn-outline-primary" for="btnradio2"><i
  5962. class="bi bi-moon-fill me-2"></i>Dark</label>
  5963.  
  5964. <input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off"
  5965. data-bs-theme-value="light">
  5966. <label class="btn btn-sm btn-outline-primary" for="btnradio3"><i
  5967. class="bi bi-sun-fill me-2"></i>Light</label>
  5968. </div>
  5969. </li>
  5970. <li class="nav-header d-block d-md-none">
  5971. <div class="navbar-search-block">
  5972. <form class="form-inline" method="get" action="channel/pepecyb" role="search">
  5973. <input class="form-control form-control-sm mt-1 me-2" id="nav-search-text" type="text" value=""
  5974. placeholder="@name, #tag, ?doc, content" name="search" title="Search site @name, !forum, #tag, ?docs, content" onclick="this.submit();"
  5975. onblur="closeMenu(\'nav-search\'); openMenu(\'nav-search-btn\');" />
  5976. </form>
  5977. </div>
  5978. </li>
  5979.  
  5980. <!-- Pinned user apps -->
  5981. <!-- Channel apps; needs fixing -->
  5982. <li class="nav-header" aria-disabled="true">Channel Apps</li>
  5983. <li class="nav-item">
  5984. <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>
  5985. </li>
  5986. <li class="nav-item">
  5987. <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>
  5988. </li>
  5989. <li class="nav-item">
  5990. <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>
  5991. </li>
  5992. <li class="nav-item">
  5993. <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>
  5994. </li>
  5995. <li class="nav-item">
  5996. <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>
  5997. </li>
  5998. <li class="nav-item">
  5999. <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>
  6000. </li>
  6001. <li class="nav-item">
  6002. <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>
  6003. </li>
  6004. <li class="nav-item">
  6005. <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>
  6006. </li>
  6007. <li class="nav-item">
  6008. <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>
  6009. </li>
  6010. <br>
  6011.  
  6012. <li class="nav-header" aria-disabled="true">System Apps</li>
  6013. <!-- System apps -->
  6014. <!-- other apps in main sidebar menu -->
  6015. <li class="nav-item">
  6016. <a href="https://hub.hubzilla.hu/directory" class="nav-link ">
  6017. <i class="nav-icon bi bi-diagram-3"></i> <p>Directory</p>
  6018. </a>
  6019. </li>
  6020.  
  6021. <!-- other apps in main sidebar menu -->
  6022. <li class="nav-item">
  6023. <a href="https://hub.hubzilla.hu/help" class="nav-link ">
  6024. <i class="nav-icon bi bi-question-lg"></i> <p>Help</p>
  6025. </a>
  6026. </li>
  6027.  
  6028. <!-- other apps in main sidebar menu -->
  6029. <li class="nav-item">
  6030. <a href="https://hub.hubzilla.hu/lang" class="nav-link ">
  6031. <i class="nav-icon bi bi-translate"></i> <p>Language</p>
  6032. </a>
  6033. </li>
  6034.  
  6035. <!-- other apps in main sidebar menu -->
  6036. <li class="nav-item">
  6037. <a href="https://hub.hubzilla.hu/likebanner" class="nav-link ">
  6038. <p>Like Us</p>
  6039. </a>
  6040. </li>
  6041.  
  6042. <!-- other apps in main sidebar menu -->
  6043. <li class="nav-item">
  6044. <a href="https://hub.hubzilla.hu/pubstream" class="nav-link ">
  6045. <i class="nav-icon bi bi-globe"></i> <p>Public Stream</p>
  6046. </a>
  6047. </li>
  6048.  
  6049. <!-- other apps in main sidebar menu -->
  6050. <li class="nav-item">
  6051. <a href="https://hub.hubzilla.hu/qrator" class="nav-link ">
  6052. <i class="nav-icon bi bi-qr-code"></i> <p>QRator</p>
  6053. </a>
  6054. </li>
  6055.  
  6056. <!-- other apps in main sidebar menu -->
  6057. <li class="nav-item">
  6058. <a href="https://hub.hubzilla.hu/randprof" class="nav-link ">
  6059. <i class="nav-icon bi bi-shuffle"></i> <p>Random Channel</p>
  6060. </a>
  6061. </li>
  6062.  
  6063. <!-- other apps in main sidebar menu -->
  6064. <li class="nav-item">
  6065. <a href="https://framagit.org/hubzilla/core/issues" class="nav-link ">
  6066. <i class="nav-icon bi bi-bug"></i> <p>Report Bug</p>
  6067. </a>
  6068. </li>
  6069.  
  6070. <!-- other apps in main sidebar menu -->
  6071. <li class="nav-item">
  6072. <a href="https://hub.hubzilla.hu/search" class="nav-link ">
  6073. <i class="nav-icon bi bi-search"></i> <p>Search</p>
  6074. </a>
  6075. </li>
  6076.  
  6077. <!-- other apps in main sidebar menu -->
  6078. <li class="nav-item">
  6079. <a href="https://hub.hubzilla.hu/donate" class="nav-link ">
  6080. <p>Support Hubzilla</p>
  6081. </a>
  6082. </li>
  6083.  
  6084. </ul>
  6085. <!--end::Sidebar Menu-->
  6086. </nav>
  6087. </div>
  6088. <!--end::Sidebar Wrapper-->
  6089. </aside>
  6090. <!--end::Sidebar-->
  6091.  
  6092. <script>
  6093. document.addEventListener(\'DOMContentLoaded\', function() {
  6094. // Function to apply the saved sidebar state
  6095. function applySavedState() {
  6096. const isDesktop = window.innerWidth >= 768; // AdminLTE\'s desktop breakpoint
  6097. const savedState = localStorage.getItem(\'sidebarCollapsed\');
  6098.  
  6099. // Apply state only on desktop
  6100. if (isDesktop && savedState !== null) {
  6101. document.body.classList.toggle(\'sidebar-collapse\', savedState === \'true\');
  6102. }
  6103. }
  6104.  
  6105. // Apply saved state on initial load
  6106. applySavedState();
  6107.  
  6108. // Re-apply state when window is resized to desktop
  6109. window.addEventListener(\'resize\', applySavedState);
  6110.  
  6111. // Watch for sidebar class changes to update localStorage
  6112. const observer = new MutationObserver(function(mutations) {
  6113. mutations.forEach(function(mutation) {
  6114. if (mutation.attributeName === \'class\') {
  6115. const isDesktop = window.innerWidth >= 768;
  6116. const isCollapsed = document.body.classList.contains(\'sidebar-collapse\');
  6117.  
  6118. // Save state only for desktop interactions
  6119. if (isDesktop) {
  6120. localStorage.setItem(\'sidebarCollapsed\', isCollapsed);
  6121. }
  6122. }
  6123. });
  6124. });
  6125.  
  6126. // Start observing the body element for class changes
  6127. observer.observe(document.body, { attributes: true });
  6128. });
  6129. </script>
  6130.  
  6131. <!-- Content Wrapper. Contains page content -->
  6132. <main class="app-main px-1 py-3" style="min-height: calc(100vh - 56px);">
  6133. <div class="container-xl">
  6134. <div class="row">
  6135. <div id="region_2" class="col-12 col-md-12 col-lg-8">
  6136.  
  6137. <div id="live-channel"></div>
  6138. <script> var profile_uid = 5; var netargs = \'?f=\'; var profile_page = 1; divmore_height = 400;</script>
  6139. <noscript><div id="threads-begin"></div>
  6140. <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"]\'>
  6141. <a name="item_2669850" ></a>
  6142. <div class="wall-item-outside-wrapper" id="wall-item-outside-wrapper-2669850" >
  6143. <div class="rounded wall-item-content-wrapper" id="wall-item-content-wrapper-2669850">
  6144. <div class="p-2 wall-item-head wall-item-head-new card-body clearfix">
  6145. <div class="lh-sm text-end float-end">
  6146. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669850">
  6147. <i class="bi bi-geo-alt" title="Nagybaracska"></i>
  6148. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6149. <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>
  6150. </div>
  6151. </div>
  6152. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669850" >
  6153. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669850">
  6154. <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" />
  6155. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6156. <div class="dropdown-menu">
  6157. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  6158. </div>
  6159. </div>
  6160. </div>
  6161. <div class="wall-item-author">
  6162. <div class="text-truncate">
  6163. <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>
  6164. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">pepecyb@hub.hubzilla.hu</small>
  6165. </div>
  6166. </div>
  6167. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669850">
  6168. <div class="wall-item-body e-content" id="wall-item-body-2669850">
  6169. @<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
  6170. </div>
  6171. </div>
  6172. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6173. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669850">
  6174. <div class="">
  6175. <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">
  6176. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  6177. <div class="dropdown-menu">
  6178. <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>
  6179. </div>
  6180. <div class="">
  6181. <div id="like-rotator-2669850" class="spinner-wrapper">
  6182. <div class="spinner s"></div>
  6183. </div>
  6184. </div>
  6185. </div>
  6186. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669850">
  6187. <div class="">
  6188. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669850">
  6189. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6190. </button>
  6191. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669850">
  6192. <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>
  6193. <div class="dropdown-divider"></div>
  6194. <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>
  6195. </div>
  6196. </div>
  6197. </div>
  6198. </div>
  6199. </div>
  6200. </div>
  6201. <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"]\'>
  6202. <a name="item_2669928" ></a>
  6203. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2669928" >
  6204. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2669928">
  6205. <div class="p-2 wall-item-head card-body clearfix">
  6206. <div class="lh-sm text-end float-end">
  6207. <div class="wall-item-ago opacity-75" id="wall-item-ago-2669928">
  6208. <a href="http://starwars.com" target="_blank" rel="nofollow noopener" >Felucia</a>
  6209. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6210. <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>
  6211. </div>
  6212. </div>
  6213. <div class="float-start wall-item-info pe-2" id="wall-item-info-2669928" >
  6214. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2669928">
  6215. <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" />
  6216. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6217. <div class="dropdown-menu">
  6218. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=ppKHp3LwBkXxpRn-QyrUdUyU5yzqJILuoxN-xX4lEZM9Cx5OqIB-iQd1r-zB9XIpEVYKrQsm6RcWY--Ink9Nxw" title="View Profile">View Profile</a>
  6219. </div>
  6220. </div>
  6221. </div>
  6222. <div class="wall-item-author">
  6223. <div class="text-truncate">
  6224. <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>
  6225. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">sh@hub.hayfidelity.de</small>
  6226. </div>
  6227. </div>
  6228. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2669928">
  6229. <div class="wall-item-body e-content" id="wall-item-body-2669928">
  6230. Ist die Installation wie bei streams?
  6231. </div>
  6232. </div>
  6233. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6234. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2669928">
  6235. <div class="">
  6236. <div id="like-rotator-2669928" class="spinner-wrapper">
  6237. <div class="spinner s"></div>
  6238. </div>
  6239. </div>
  6240. </div>
  6241. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2669928">
  6242. <div class="">
  6243. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2669928">
  6244. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6245. </button>
  6246. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2669928">
  6247. <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>
  6248. <div class="dropdown-divider"></div>
  6249. <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>
  6250. </div>
  6251. </div>
  6252. </div>
  6253. </div>
  6254. </div>
  6255. </div>
  6256. </div>
  6257. <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"]\'>
  6258. <a name="item_2670071" ></a>
  6259. <div class="wall-item-outside-wrapper comment" id="wall-item-outside-wrapper-2670071" >
  6260. <div class="rounded wall-item-content-wrapper comment" id="wall-item-content-wrapper-2670071">
  6261. <div class="p-2 wall-item-head card-body clearfix">
  6262. <div class="lh-sm text-end float-end">
  6263. <div class="wall-item-ago opacity-75" id="wall-item-ago-2670071">
  6264. <i class="bi bi-shield-check" title="Message signature validated"></i>
  6265. <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>
  6266. </div>
  6267. </div>
  6268. <div class="float-start wall-item-info pe-2" id="wall-item-info-2670071" >
  6269. <div class="wall-item-photo-wrapper h-card p-author" id="wall-item-photo-wrapper-2670071">
  6270. <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" />
  6271. <i class="bi bi-caret-down-fill wall-item-photo-caret cursor-pointer" data-bs-toggle="dropdown"></i>
  6272. <div class="dropdown-menu">
  6273. <a class="dropdown-item" href="https://hub.hubzilla.hu/chanview?f=&hash=irXnyhJ7Ns-C-2baG7diPbkojlJacFhD_VYHECMhqf8yxqZG4ELcg0M5SFFTQJc4q-O5YY8vRrUUUlhf8Iotwg" title="View Profile">View Profile</a>
  6274. </div>
  6275. </div>
  6276. </div>
  6277. <div class="wall-item-author">
  6278. <div class="text-truncate">
  6279. <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>
  6280. <small class="lh-sm text-truncate d-block wall-item-addr opacity-75">pepecyb@hub.hubzilla.hu</small>
  6281. </div>
  6282. </div>
  6283. <div class="p-2 wall-item-content clearfix" id="wall-item-content-2670071">
  6284. <div class="wall-item-body e-content" id="wall-item-body-2670071">
  6285. Ja, im Prinzip kein Unterschied. Läuft auch absolut geschmeidig.
  6286. </div>
  6287. </div>
  6288. <div class="p-2 wall-item-tools d-flex justify-content-between">
  6289. <div class="wall-item-tools-left hstack gap-1" id="wall-item-tools-left-2670071">
  6290. <div class="">
  6291. <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">
  6292. <i class="bi bi-hand-thumbs-up generic-icons"></i><span style="display: inline-block; margin-top: -.25rem;" class="align-top">1</span> </button>
  6293. <div class="dropdown-menu">
  6294. <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>
  6295. </div>
  6296. <div class="">
  6297. <div id="like-rotator-2670071" class="spinner-wrapper">
  6298. <div class="spinner s"></div>
  6299. </div>
  6300. </div>
  6301. </div>
  6302. <div class="wall-item-tools-right hstack gap-1" id="wall-item-tools-right-2670071">
  6303. <div class="">
  6304. <button type="button" class="btn btn-sm btn-link text-body-tertiary" data-bs-toggle="dropdown" id="wall-item-menu-2670071">
  6305. <i class="bi bi-three-dots-vertical generic-icons"></i>
  6306. </button>
  6307. <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="wall-item-menu-2670071">
  6308. <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>
  6309. <div class="dropdown-divider"></div>
  6310. <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>
  6311. </div>
  6312. </div>
  6313. </div>
  6314. </div>
  6315. </div>
  6316. </div>
  6317. </div>
  6318. </div>
  6319. <div id="threads-end"></div>
  6320. <div id="conversation-end"></div>
  6321. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  6322. <div class="modal-dialog">
  6323. <div class="modal-content">
  6324. <div class="modal-header">
  6325. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  6326. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  6327. </div>
  6328. <div class="modal-body" id="conversation_settings_body">
  6329. Loading...
  6330. </div>
  6331. </div><!-- /.modal-content -->
  6332. </div><!-- /.modal-dialog -->
  6333. </div><!-- /.modal -->
  6334. <div class="pager">
  6335. <a href="https://hub.hubzilla.hu/channel/pepecyb?mid=4c683a95-be61-4b2a-a7b4-366e37085cb1&page=2" class="pager-next">older</a></div>
  6336. </noscript><div id="threads-begin"></div>
  6337. <div id="threads-end"></div>
  6338. <div id="conversation-end"></div>
  6339. <div id="page-spinner" class="spinner-wrapper">
  6340. <div class="spinner m"></div>
  6341. <div id="image_counter" class="text-muted text-center small"></div>
  6342. </div>
  6343. <div class="modal" id="conversation_settings" tabindex="-1" role="dialog" aria-labelledby="conversation_settings_label" aria-hidden="true">
  6344. <div class="modal-dialog">
  6345. <div class="modal-content">
  6346. <div class="modal-header">
  6347. <h3 class="modal-title" id="conversation_settings_label">Conversation Features</h3>
  6348. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
  6349. </div>
  6350. <div class="modal-body" id="conversation_settings_body">
  6351. Loading...
  6352. </div>
  6353. </div><!-- /.modal-content -->
  6354. </div><!-- /.modal-dialog -->
  6355. </div><!-- /.modal -->
  6356. <div id="edit-modal" class="modal" tabindex="-1">
  6357. <div class="modal-dialog">
  6358. <div class="modal-content">
  6359. <div class="modal-header">
  6360. <div id="edit-modal-title" class="modal-title w-75">
  6361. <div class="placeholder-wave">
  6362. <span class="placeholder placeholder-lg" style="width: 200px;"></span>
  6363. </div>
  6364. </div>
  6365. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  6366. </div>
  6367. <div id="edit-modal-body" class="modal-body">
  6368. <div class="placeholder-wave">
  6369. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6370. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6371. <span class="placeholder placeholder-lg w-100 mb-4"></span>
  6372. </div>
  6373. </div>
  6374. <div class="modal-footer">
  6375. <div id="edit-modal-tools" class="me-auto"></div>
  6376. <button id="contact-save" type="button" class="btn btn-primary"></button>
  6377. </div>
  6378. </div>
  6379. </div>
  6380. </div>
  6381. <script>
  6382.  
  6383. let poi;
  6384. let section = \'roles\';
  6385. let sub_section;
  6386.  
  6387. $(document).ready(function() {
  6388. if (window.location.hash) {
  6389. poi = window.location.hash.substr(1);
  6390. init_contact_edit(poi);
  6391. }
  6392.  
  6393. window.onhashchange = function() {
  6394. if (window.location.hash) {
  6395. poi = window.location.hash.substr(1);
  6396. init_contact_edit(poi);
  6397. }
  6398. };
  6399. });
  6400.  
  6401. $(document).on(\'click\', \'.contact-edit\', function (e) {
  6402. e.preventDefault();
  6403. poi = this.dataset.id
  6404. init_contact_edit(poi);
  6405. });
  6406.  
  6407. $(document).on(\'click\', \'#contact-save\', function () {
  6408. let form_data = $(\'#contact-edit-form\').serialize() + \'&section=\' + section + \'&sub_section=\' + sub_section;
  6409.  
  6410. $.post(\'contactedit/\' + poi, form_data, function(data) {
  6411. if (!data.success) {
  6412. toast(data.message, \'danger\');
  6413. return;
  6414. }
  6415. activate(data);
  6416. toast(data.message, ((data.success) ? \'info\' : \'danger\'));
  6417. // $(\'#edit-modal\').modal(\'hide\');
  6418. });
  6419.  
  6420. });
  6421.  
  6422. $(document).on(\'click\', \'.contact-tool\', function (e) {
  6423. e.preventDefault();
  6424. let cmd = this.dataset.cmd;
  6425.  
  6426. $.get(\'contactedit/\' + poi + \'/\' + cmd, function(data) {
  6427. $(\'#edit-modal-tools\').html(data.tools);
  6428. toast(data.message, ((data.success) ? \'info\' : \'danger\'));
  6429. if (cmd === \'drop\') {
  6430. if ($(\'#contact-entry-wrapper-\' + poi).length) {
  6431. $(\'#contact-entry-wrapper-\' + poi).fadeOut();
  6432. }
  6433. $(\'#edit-modal\').modal(\'hide\');
  6434. }
  6435. });
  6436. });
  6437.  
  6438. $(document).on(\'click\', \'.section\', function () {
  6439. section = this.dataset.section;
  6440. sub_section = \'\';
  6441. });
  6442.  
  6443. $(document).on(\'click\', \'.sub_section\', function () {
  6444. if ($(this).hasClass(\'sub_section_active\')) {
  6445. $(this).removeClass(\'sub_section_active\');
  6446. sub_section = \'\';
  6447. }
  6448. else {
  6449. $(this).addClass(\'sub_section_active\');
  6450. sub_section = this.dataset.section;
  6451. }
  6452. });
  6453.  
  6454. $(\'#edit-modal\').on(\'hidden.bs.modal\', function (e) {
  6455. if (window.location.hash) {
  6456. history.replaceState(null, \'\', \'connections\');
  6457. }
  6458. });
  6459.  
  6460. function init_contact_edit(poi) {
  6461. if (!poi)
  6462. return;
  6463.  
  6464. $(\'.contact-edit-rotator-\' + poi).addClass(\'d-inline-block\');
  6465. $(\'.contact-edit-icon-\' + poi).hide();
  6466. $.get(\'contactedit/\' + poi, function(data) {
  6467. if (!data.success) {
  6468. toast(data.message, \'danger\');
  6469. return;
  6470. }
  6471. $(\'#edit-modal\').modal(\'show\');
  6472. activate(data);
  6473. });
  6474. }
  6475.  
  6476. function activate(data) {
  6477. $(\'#contact-save\').removeClass(\'disabled\');
  6478. $(\'#contact-tools\').removeClass(\'disabled\');
  6479. $(\'.contact-edit-rotator-\' + poi).removeClass(\'d-inline-block\');
  6480. $(\'.contact-edit-icon-\' + poi).show();
  6481.  
  6482. if (data.title) {
  6483. $(\'#edit-modal-title\').html(data.title);
  6484. }
  6485.  
  6486. if (data.body) {
  6487. $(\'#edit-modal-body\').html(data.body);
  6488. }
  6489.  
  6490. if (data.tools) {
  6491. $(\'#edit-modal-tools\').html(data.tools);
  6492. }
  6493.  
  6494. if (data.submit) {
  6495. $(\'#contact-save\').html(data.submit);
  6496. }
  6497.  
  6498. if (data.role && $(\'#contact-role-\' + poi).length) {
  6499. $(\'#contact-role-\' + poi).html(data.role);
  6500. }
  6501.  
  6502. if (data.pending) {
  6503. $(\'#contact-save\').removeClass(\'btn-primary\');
  6504. $(\'#contact-save\').addClass(\'btn-success\');
  6505. }
  6506. else {
  6507. $(\'#contact-save\').addClass(\'btn-primary\');
  6508. $(\'#contact-save\').removeClass(\'btn-success\');
  6509. }
  6510. }
  6511. </script>
  6512. <div id="content-complete"></div>
  6513. <script>
  6514. $(document).ready(function(){
  6515.  
  6516. // hide #back-top first
  6517. $("#back-top").hide();
  6518.  
  6519. // fade in #back-top
  6520. $(function () {
  6521. $(window).scroll(function () {
  6522. if ($(this).scrollTop() > 100) {
  6523. $(\'#back-top\').fadeIn();
  6524. } else {
  6525. $(\'#back-top\').fadeOut();
  6526. }
  6527. });
  6528.  
  6529. // scroll body to 0px on click
  6530. $(\'#back-top a\').click(function () {
  6531. $(\'body,html\').animate({
  6532. scrollTop: 0
  6533. }, 150);
  6534. return false;
  6535. });
  6536. });
  6537.  
  6538. });
  6539. </script><p id="back-top"><a href="#top"><span></span></a></p>
  6540.  
  6541. </div>
  6542.  
  6543. <div class="d-lg-block col-lg-4 sticky-column pe-0">
  6544. <div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
  6545. <div class="offcanvas-header mt-2">
  6546. <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
  6547. </div>
  6548. <div class="offcanvas-body px-0">
  6549. <div class="container row pe-0">
  6550. <div id="region_1" class="pe-0">
  6551. <div id="left_aside_wrapper">
  6552.  
  6553. <script>
  6554. var sse_bs_active = false;
  6555. var sse_offset = 0;
  6556. var sse_type;
  6557. var sse_partial_result = false;
  6558. var sse_rmids = [];
  6559. var sse_fallback_interval;
  6560. var sse_sys_only = 0;
  6561.  
  6562. document.addEventListener("DOMContentLoaded", function() {
  6563. let notificationsWrapper = document.getElementById(\'notifications_wrapper\');
  6564. let notificationsParent = notificationsWrapper ? notificationsWrapper.parentElement.id : null;
  6565. let notificationsBtn = document.querySelector(\'.notifications-btn\');
  6566.  
  6567. // Event listener for notifications button
  6568. if (notificationsBtn) {
  6569. notificationsBtn.addEventListener(\'click\', function() {
  6570. // Remove the \'d-none\' class to show the notifications wrapper
  6571. notificationsWrapper.classList.remove(\'d-none\');
  6572.  
  6573. // Check if the notifications wrapper has the \'fs\' class
  6574. if (notificationsWrapper.classList.contains(\'fs\')) {
  6575. // Prepend the notifications wrapper back to its original parent and hide it
  6576. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  6577. notificationsWrapper.classList.add(\'d-none\');
  6578. } else {
  6579. // Otherwise, prepend the notifications wrapper to \'main\'
  6580. document.querySelector(\'main\').prepend(notificationsWrapper);
  6581. }
  6582.  
  6583. // Toggle the \'fs\' class
  6584. notificationsWrapper.classList.toggle(\'fs\');
  6585. });
  6586. }
  6587.  
  6588. // Event listener for clicking a notification
  6589. document.addEventListener(\'click\', function(event) {
  6590. if (event.target.closest(\'a\') && event.target.closest(\'a\').classList.contains(\'notification\')) {
  6591. console.log(1)
  6592. if (notificationsWrapper.classList.contains(\'fs\')) {
  6593. // Move notifications wrapper back to its original parent and hide it
  6594. notificationsWrapper.classList.remove(\'fs\');
  6595. notificationsWrapper.classList.add(\'d-none\');
  6596. document.getElementById(notificationsParent).appendChild(notificationsWrapper);
  6597.  
  6598. }
  6599. }
  6600. });
  6601.  
  6602. if(sse_enabled) {
  6603. if(typeof(window.SharedWorker) === \'undefined\') {
  6604. // notifications with multiple tabs open will not work very well in this scenario
  6605. let evtSource = new EventSource(\'/sse\');
  6606.  
  6607. evtSource.addEventListener(\'notifications\', function(e) {
  6608. let obj = JSON.parse(e.data);
  6609. sse_handleNotifications(obj, false, false);
  6610. }, false);
  6611.  
  6612. document.addEventListener(\'visibilitychange\', function() {
  6613. if (!document.hidden) {
  6614. sse_offset = 0;
  6615. sse_bs_init();
  6616. }
  6617. }, false);
  6618.  
  6619. }
  6620. else {
  6621. let myWorker = new SharedWorker(\'/view/js/sse_worker.js\', localUser);
  6622.  
  6623. myWorker.port.onmessage = function(e) {
  6624. obj = e.data;
  6625. console.log(obj);
  6626. sse_handleNotifications(obj, false, false);
  6627. }
  6628.  
  6629. myWorker.onerror = function(e) {
  6630. myWorker.port.close();
  6631. }
  6632.  
  6633. myWorker.port.start();
  6634. }
  6635. }
  6636. else {
  6637. if (!document.hidden) {
  6638. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  6639. }
  6640.  
  6641. document.addEventListener(\'visibilitychange\', function() {
  6642. if (document.hidden) {
  6643. clearInterval(sse_fallback_interval);
  6644. }
  6645. else {
  6646. sse_offset = 0;
  6647. sse_bs_init();
  6648. sse_fallback_interval = setInterval(sse_fallback, updateInterval);
  6649. }
  6650.  
  6651. }, false);
  6652. }
  6653.  
  6654. document.querySelectorAll(\'.notification-link\').forEach(function (element) {
  6655. element.addEventListener(\'click\', function (element) {
  6656. sse_bs_notifications(element, true, false);
  6657. });
  6658. });
  6659.  
  6660. document.querySelectorAll(\'.notification-filter\').forEach(function (element) {
  6661. element.addEventListener(\'keypress\', function(e) {
  6662. if (e.which == 13) { // Enter key
  6663. this.blur();
  6664. sse_offset = 0;
  6665.  
  6666. // Clear the content of the menu
  6667. document.getElementById("nav-" + sse_type + "-menu").innerHTML = \'\';
  6668.  
  6669. // Show the loading element
  6670. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6671.  
  6672. // Get the value from the input element
  6673. var cn_val = document.getElementById(\'cn-\' + sse_type + \'-input\') ? document.getElementById(\'cn-\' + sse_type + \'-input\').value.toString().toLowerCase() : \'\';
  6674.  
  6675. // Send a GET request using the Fetch API
  6676. fetch(\'/sse_bs/\' + sse_type + \'/\' + sse_offset + \'?nquery=\' + encodeURIComponent(cn_val))
  6677. .then(response => response.json())
  6678. .then(obj => {
  6679. console.log(\'sse: bootstraping \' + sse_type);
  6680. console.log(obj);
  6681.  
  6682. sse_bs_active = false;
  6683. sse_partial_result = true;
  6684. sse_offset = obj[sse_type].offset;
  6685. if (sse_offset < 0) {
  6686. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6687. }
  6688.  
  6689. sse_handleNotifications(obj, true, false);
  6690. })
  6691. .catch(error => {
  6692. console.error(\'Error fetching data:\', error);
  6693. });
  6694. }
  6695. });
  6696. });
  6697.  
  6698. document.querySelectorAll(\'.notifications-textinput-clear\').forEach(function (element) {
  6699. element.addEventListener(\'click\', function(e) {
  6700. if (!sse_partial_result) return;
  6701.  
  6702. // Clear the content of the menu
  6703. document.getElementById("nav-" + sse_type + "-menu").innerHTML = \'\';
  6704.  
  6705. // Show the loading element
  6706. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6707.  
  6708. // Send a GET request using the Fetch API
  6709. fetch(\'/sse_bs/\' + sse_type)
  6710. .then(response => response.json())
  6711. .then(obj => {
  6712. console.log(\'sse: bootstraping \' + sse_type);
  6713. console.log(obj);
  6714.  
  6715. sse_bs_active = false;
  6716. sse_partial_result = false;
  6717. sse_offset = obj[sse_type].offset;
  6718. if (sse_offset < 0) {
  6719. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6720. }
  6721.  
  6722. sse_handleNotifications(obj, true, false);
  6723. })
  6724. .catch(error => {
  6725. console.error(\'Error fetching data:\', error);
  6726. });
  6727. });
  6728. });
  6729.  
  6730. document.querySelectorAll(\'.notification-content\').forEach(function(element) {
  6731. element.addEventListener(\'scroll\', function() {
  6732. if (this.scrollTop > this.scrollHeight - this.clientHeight - (this.scrollHeight / 7)) {
  6733. sse_bs_notifications(sse_type, false, true);
  6734. }
  6735. });
  6736. });
  6737.  
  6738.  
  6739. document.querySelectorAll(\'#tt-pubs-only\').forEach(function (element) {
  6740. element.addEventListener(\'click\', function(e) {
  6741.  
  6742. let element = e.target.closest(\'div\');
  6743. let menu = document.querySelector(\'#nav-pubs-menu\');
  6744. let notifications = menu.querySelectorAll(\'.notification[data-thread_top="false"]\');
  6745.  
  6746. // Function to check if an element is visible
  6747. function isVisible(el) {
  6748. return el.offsetWidth > 0 && el.offsetHeight > 0;
  6749. }
  6750.  
  6751. if (element.classList.contains(\'active\') && element.classList.contains(\'sticky-top\')) {
  6752. notifications.forEach(function(notification) {
  6753. notification.classList.remove(\'tt-filter-active\');
  6754. });
  6755. element.classList.remove(\'active\', \'sticky-top\');
  6756. } else {
  6757. notifications.forEach(function(notification) {
  6758. notification.classList.add(\'tt-filter-active\');
  6759. });
  6760. element.classList.add(\'active\', \'sticky-top\');
  6761.  
  6762. // Count the visible notifications
  6763. let visibleNotifications = Array.from(menu.querySelectorAll(\'.notification\')).filter(isVisible).length;
  6764.  
  6765. // Load more notifications if the visible count is low
  6766. if (sse_type && sse_offset !== -1 && visibleNotifications < 15) {
  6767. sse_bs_notifications(sse_type, false, true);
  6768. }
  6769. }
  6770.  
  6771. });
  6772. });
  6773.  
  6774. document.querySelectorAll(\'#cn-pubs-input-clear\').forEach(function (element) {
  6775. element.addEventListener(\'click\', function(e) {
  6776. let input = document.getElementById(\'cn-pubs-input\');
  6777. input.value = \'\';
  6778.  
  6779. // Remove \'active\' and \'sticky-top\' classes to the \'only\' element
  6780. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6781. onlyElement.classList.remove(\'active\', \'sticky-top\');
  6782.  
  6783. // Add \'d-none\' class from the clear button
  6784. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6785. clearButton.classList.add(\'d-none\');
  6786.  
  6787. // Remove the \'cn-filter-active\' class from all notifications
  6788. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  6789. notifications.forEach(function(notification) {
  6790. notification.classList.remove(\'cn-filter-active\');
  6791. });
  6792. });
  6793. });
  6794.  
  6795. document.querySelectorAll(\'#cn-pubs-input\').forEach(function (element) {
  6796. element.addEventListener(\'input\', function(e) {
  6797. let input = e.target;
  6798. let val = input.value.toString().toLowerCase();
  6799.  
  6800. // Check if there is input value
  6801. if (val) {
  6802. // Remove \'%\' if it\'s at the beginning of the input value
  6803. val = val.indexOf(\'%\') === 0 ? val.substring(1) : val;
  6804.  
  6805. // Add \'active\' and \'sticky-top\' classes to the \'only\' element
  6806. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6807. onlyElement.classList.add(\'active\', \'sticky-top\');
  6808.  
  6809. // Remove \'d-none\' class from the clear button
  6810. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6811. clearButton.classList.remove(\'d-none\');
  6812. } else {
  6813. // Remove \'active\' and \'sticky-top\' classes from the \'only\' element
  6814. let onlyElement = document.getElementById(\'cn-pubs-only\');
  6815. onlyElement.classList.remove(\'active\', \'sticky-top\');
  6816.  
  6817. // Add \'d-none\' class to the clear button
  6818. let clearButton = document.getElementById(\'cn-pubs-input-clear\');
  6819. clearButton.classList.add(\'d-none\');
  6820. }
  6821.  
  6822. // Loop through each notification and apply filter logic
  6823. let notifications = document.querySelectorAll("#nav-pubs-menu .notification");
  6824. notifications.forEach(function(el) {
  6825. let cn = el.dataset.contact_name.toString().toLowerCase();
  6826. let ca = el.dataset.contact_addr.toString().toLowerCase();
  6827.  
  6828. // Check if the contact name or address matches the input value
  6829. if (cn.indexOf(val) === -1 && ca.indexOf(val) === -1) {
  6830. el.classList.add(\'cn-filter-active\');
  6831. } else {
  6832. el.classList.remove(\'cn-filter-active\');
  6833. }
  6834. });
  6835. });
  6836. });
  6837.  
  6838.  
  6839. });
  6840.  
  6841. document.addEventListener(\'hz:sse_setNotificationsStatus\', function(e) {
  6842. sse_setNotificationsStatus(e.detail);
  6843. });
  6844.  
  6845. document.addEventListener(\'hz:sse_bs_init\', function() {
  6846. sse_bs_init();
  6847. });
  6848.  
  6849. document.addEventListener(\'hz:sse_bs_counts\', function() {
  6850. sse_bs_counts();
  6851. });
  6852.  
  6853.  
  6854. function sse_bs_init() {
  6855. // Check if \'notification_open\' exists in sessionStorage or if sse_type is defined
  6856. if (sessionStorage.getItem(\'notification_open\') !== null || typeof sse_type !== \'undefined\') {
  6857. if (typeof sse_type === \'undefined\') {
  6858. sse_type = sessionStorage.getItem(\'notification_open\');
  6859. }
  6860.  
  6861. // Add the \'show\' class to the appropriate element
  6862. let subNav = document.getElementById("nav-" + sse_type + "-sub");
  6863. if (subNav) {
  6864. subNav.classList.add(\'show\');
  6865. }
  6866.  
  6867. // Call the sse_bs_notifications function
  6868. sse_bs_notifications(sse_type, true, false);
  6869. } else {
  6870. // Call the sse_bs_counts function if conditions are not met
  6871. sse_bs_counts();
  6872. }
  6873. }
  6874.  
  6875. function sse_bs_counts() {
  6876. if (sse_bs_active || sse_sys_only) {
  6877. return;
  6878. }
  6879.  
  6880. sse_bs_active = true;
  6881.  
  6882. // Use the fetch API to send the POST request with the data
  6883. fetch(\'/sse_bs\', {
  6884. method: \'POST\',
  6885. body: new URLSearchParams({sse_rmids: sse_rmids})
  6886. })
  6887. .then(response => response.json()) // Parse the JSON response
  6888. .then(obj => {
  6889. console.log(obj);
  6890. sse_bs_active = false;
  6891. sse_rmids = [];
  6892. sse_handleNotifications(obj, true, false);
  6893. })
  6894. .catch(error => {
  6895. console.error(\'Error:\', error);
  6896. sse_bs_active = false;
  6897. });
  6898. }
  6899.  
  6900. function sse_bs_notifications(e, replace, followup) {
  6901. if (sse_bs_active || sse_sys_only) {
  6902. return;
  6903. }
  6904.  
  6905. let manual = false;
  6906.  
  6907. if (typeof replace === \'undefined\') {
  6908. replace = e.data.replace;
  6909. }
  6910.  
  6911. if (typeof followup === \'undefined\') {
  6912. followup = e.data.followup;
  6913. }
  6914.  
  6915. if (typeof e === \'string\') {
  6916. sse_type = e;
  6917. } else {
  6918. manual = true;
  6919. sse_offset = 0;
  6920. sse_type = e.target.dataset.sse_type;
  6921. }
  6922.  
  6923. if (typeof sse_type === \'undefined\') {
  6924. return;
  6925. }
  6926.  
  6927. if (followup || !manual || !document.getElementById(\'notification-link-\' + sse_type).classList.contains(\'collapsed\')) {
  6928.  
  6929. if (sse_offset >= 0) {
  6930. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6931. }
  6932.  
  6933. sessionStorage.setItem(\'notification_open\', sse_type);
  6934.  
  6935. if (sse_offset !== -1 || replace) {
  6936. let cn_val = (document.getElementById(\'cn-\' + sse_type + \'-input\') && sse_partial_result)
  6937. ? document.getElementById(\'cn-\' + sse_type + \'-input\').value.toString().toLowerCase()
  6938. : \'\';
  6939.  
  6940. document.getElementById("nav-" + sse_type + "-loading").style.display = \'block\';
  6941.  
  6942. sse_bs_active = true;
  6943.  
  6944. // Send POST request using fetch API
  6945. fetch(\'/sse_bs/\' + sse_type + \'/\' + sse_offset, {
  6946. method: \'POST\',
  6947. body: new URLSearchParams({
  6948. sse_rmids: sse_rmids,
  6949. nquery: encodeURIComponent(cn_val)
  6950. })
  6951. })
  6952. .then(response => response.json()) // Parse the JSON response
  6953. .then(obj => {
  6954. console.log(\'sse: bootstraping \' + sse_type);
  6955. console.log(obj);
  6956. sse_bs_active = false;
  6957. sse_rmids = [];
  6958. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6959. sse_offset = obj[sse_type].offset;
  6960. sse_handleNotifications(obj, replace, followup);
  6961. })
  6962. .catch(error => {
  6963. console.error(\'Error:\', error);
  6964. sse_bs_active = false;
  6965. });
  6966. } else {
  6967. document.getElementById("nav-" + sse_type + "-loading").style.display = \'none\';
  6968. }
  6969. } else {
  6970. sessionStorage.removeItem(\'notification_open\');
  6971. }
  6972. }
  6973.  
  6974. function sse_handleNotifications(obj, replace, followup) {
  6975. // Notice and info notifications
  6976. if (obj.notice) {
  6977. obj.notice.notifications.forEach(notification => {
  6978. toast(notification, \'danger\');
  6979. });
  6980. }
  6981.  
  6982. if (obj.info) {
  6983. obj.info.notifications.forEach(notification => {
  6984. toast(notification, \'info\');
  6985. });
  6986. }
  6987.  
  6988. if (sse_sys_only) {
  6989. return;
  6990. }
  6991.  
  6992. let primary_notifications = [\'dm\', \'home\', \'intros\', \'register\', \'notify\', \'files\'];
  6993. let secondary_notifications = [\'network\', \'forums\', \'all_events\', \'pubs\'];
  6994. let all_notifications = [...primary_notifications, ...secondary_notifications];
  6995.  
  6996. all_notifications.forEach(type => {
  6997. if (typeof obj[type] === \'undefined\') {
  6998. return;
  6999. }
  7000.  
  7001. let count = Number(obj[type].count);
  7002.  
  7003. // Show notifications and update count
  7004. let updateElement = document.querySelector(\'.\' + type + \'-update\');
  7005. let buttonElement = document.querySelector(\'.\' + type + \'-button\');
  7006. let subElement = document.getElementById(\'nav-\' + type + \'-sub\');
  7007.  
  7008. if (count) {
  7009. if (buttonElement) buttonElement.style.display = \'block\'; // Fade-in effect replaced by display block
  7010. if (replace || followup) {
  7011. updateElement.textContent = count >= 100 ? \'99+\' : count;
  7012. } else {
  7013. count = count + Number(updateElement.textContent.replace(/\\++$/, \'\'));
  7014. updateElement.textContent = count >= 100 ? \'99+\' : count;
  7015. }
  7016. } else {
  7017. if (updateElement) updateElement.textContent = \'0\';
  7018. if (subElement) subElement.classList.remove(\'show\');
  7019. if (buttonElement) {
  7020. buttonElement.style.display = \'none\'; // Fade-out effect replaced by display none
  7021. sse_setNotificationsStatus();
  7022. }
  7023. }
  7024.  
  7025. if (obj[type].notifications.length) {
  7026. sse_handleNotificationsItems(type, obj[type].notifications, replace, followup);
  7027. }
  7028. });
  7029.  
  7030. sse_setNotificationsStatus();
  7031.  
  7032. // Load more notifications if visible notifications count becomes low
  7033. if (sse_type && sse_offset !== -1) {
  7034. let menu = document.getElementById(\'nav-\' + sse_type + \'-menu\');
  7035. if (menu && menu.children.length < 15) {
  7036. sse_bs_notifications(sse_type, false, true);
  7037. }
  7038. }
  7039. }
  7040.  
  7041. function sse_handleNotificationsItems(notifyType, data, replace, followup) {
  7042.  
  7043. // Get the template, adjust based on the notification type
  7044. let notifications_tpl = (notifyType === \'forums\')
  7045. ? decodeURIComponent(document.querySelector("#nav-notifications-forums-template[rel=template]").innerHTML.replace(\'data-src\', \'src\'))
  7046. : decodeURIComponent(document.querySelector("#nav-notifications-template[rel=template]").innerHTML.replace(\'data-src\', \'src\'));
  7047.  
  7048. let notify_menu = document.getElementById("nav-" + notifyType + "-menu");
  7049. let notify_loading = document.getElementById("nav-" + notifyType + "-loading");
  7050. let notify_count = document.getElementsByClassName(notifyType + "-update");
  7051.  
  7052. if (replace && !followup) {
  7053. notify_menu.innerHTML = \'\'; // Clear menu
  7054. notify_loading.style.display = \'none\'; // Hide loading
  7055. }
  7056.  
  7057. data.forEach(notification => {
  7058. // Special handling for network notifications
  7059. if (!replace && !followup && notification.thread_top && notifyType === \'network\') {
  7060. document.dispatchEvent(new CustomEvent(\'hz:handleNetworkNotificationsItems\', { detail: notification }));
  7061. }
  7062.  
  7063. // Prepare HTML using the template
  7064. let html = notifications_tpl.format(
  7065. notification.notify_link,
  7066. notification.photo,
  7067. notification.name,
  7068. notification.addr,
  7069. notification.message,
  7070. notification.when,
  7071. notification.hclass,
  7072. notification.b64mid,
  7073. notification.notify_id,
  7074. notification.thread_top,
  7075. notification.unseen,
  7076. notification.private_forum,
  7077. encodeURIComponent(notification.mids),
  7078. notification.body
  7079. );
  7080.  
  7081. // Append the new notification HTML to the menu
  7082. notify_menu.insertAdjacentHTML(\'beforeend\', html);
  7083. });
  7084.  
  7085. // Sort notifications by date
  7086. if (!replace && !followup) {
  7087. let notifications = Array.from(notify_menu.getElementsByClassName(\'notification\'));
  7088. notifications.sort((a, b) => {
  7089. let dateA = new Date(a.dataset.when);
  7090. let dateB = new Date(b.dataset.when);
  7091. return dateA > dateB ? -1 : dateA < dateB ? 1 : 0;
  7092. });
  7093. notifications.forEach(notification => notify_menu.appendChild(notification));
  7094. }
  7095.  
  7096. // Filter thread_top notifications if the filter is active
  7097. let filterThreadTop = document.getElementById(\'tt-\' + notifyType + \'-only\');
  7098. if (filterThreadTop && filterThreadTop.classList.contains(\'active\')) {
  7099. let notifications = notify_menu.querySelectorAll(\'[data-thread_top="false"]\');
  7100. notifications.forEach(notification => notification.classList.add(\'tt-filter-active\'));
  7101. }
  7102.  
  7103. // Filter notifications based on the input field
  7104. let filterInput = document.getElementById(\'cn-\' + notifyType + \'-input\');
  7105. if (filterInput) {
  7106. let filter = filterInput.value.toString().toLowerCase();
  7107. if (filter) {
  7108. if (filter.indexOf(\'%\') === 0) filter = filter.substring(1); // Remove the percent if it exists
  7109. let notifications = notify_menu.querySelectorAll(\'.notification\');
  7110. notifications.forEach(notification => {
  7111. let cn = notification.dataset.contact_name.toString().toLowerCase();
  7112. let ca = notification.dataset.contact_addr.toString().toLowerCase();
  7113. if (cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1) {
  7114. notification.classList.add(\'cn-filter-active\');
  7115. } else {
  7116. notification.classList.remove(\'cn-filter-active\');
  7117. }
  7118. });
  7119. }
  7120. }
  7121.  
  7122. // Update relative time for notifications
  7123. updateRelativeTime(\'.autotime-narrow\');
  7124. }
  7125.  
  7126.  
  7127. function sse_updateNotifications(type, mid) {
  7128.  
  7129. // Skip processing if the type is \'notify\' and the conditions don\'t match
  7130. if (type === \'notify\' && (mid !== bParam_mid || sse_type !== \'notify\')) {
  7131. return true;
  7132. }
  7133.  
  7134. // Find the notification element based on its \'data-b64mid\' attribute
  7135. let notification = document.querySelector(`#nav-${type}-menu .notification[data-b64mid=\'${mid}\']`);
  7136.  
  7137. if (notification) {
  7138. notification.remove();
  7139. }
  7140. }
  7141.  
  7142.  
  7143. function sse_setNotificationsStatus(data) {
  7144. let primary_notifications = [\'dm\', \'home\', \'intros\', \'register\', \'notify\', \'files\'];
  7145. let secondary_notifications = [\'network\', \'forums\', \'all_events\', \'pubs\'];
  7146. let all_notifications = primary_notifications.concat(secondary_notifications);
  7147.  
  7148. let primary_available = false;
  7149. let any_available = false;
  7150.  
  7151. // Loop through all notifications and check their visibility
  7152. all_notifications.forEach(function (type) {
  7153. let button = document.querySelector(`.${type}-button`);
  7154. if (button && getComputedStyle(button).display === \'block\') {
  7155. any_available = true;
  7156. if (primary_notifications.indexOf(type) > -1) {
  7157. primary_available = true;
  7158. }
  7159. }
  7160. });
  7161.  
  7162. // Update notification button icon based on the primary notification availability
  7163. let notificationIcon = document.querySelector(\'.notifications-btn-icon\');
  7164. if (primary_available) {
  7165. notificationIcon.classList.remove(\'bi-exclamation-circle\');
  7166. notificationIcon.classList.add(\'bi-exclamation-triangle\');
  7167. } else {
  7168. notificationIcon.classList.remove(\'bi-exclamation-triangle\');
  7169. notificationIcon.classList.add(\'bi-exclamation-circle\');
  7170. }
  7171.  
  7172. // Update visibility of notification button and sections
  7173. let notificationsBtn = document.querySelector(\'.notifications-btn\');
  7174. let noNotifications = document.querySelector(\'#no_notifications\');
  7175. let notifications = document.querySelector(\'#notifications\');
  7176. let navbarCollapse = document.querySelector(\'#navbar-collapse-1\');
  7177.  
  7178. if (any_available) {
  7179. notificationsBtn.style.opacity = 1;
  7180. noNotifications.style.display = \'none\';
  7181. notifications.style.display = \'block\';
  7182. } else {
  7183. notificationsBtn.style.opacity = 0.5;
  7184. if (navbarCollapse) navbarCollapse.classList.remove(\'show\');
  7185. noNotifications.style.display = \'block\';
  7186. notifications.style.display = \'none\';
  7187. }
  7188.  
  7189. // Handle specific notifications if \'data\' is provided
  7190. if (typeof data !== \'undefined\') {
  7191. data.forEach(function (nmid) {
  7192. sse_rmids.push(nmid);
  7193.  
  7194. // Handle regular notifications
  7195. let notification = document.querySelector(`.notification[data-b64mid=\'${nmid}\']`);
  7196. if (notification) {
  7197. let parentId = notification.parentElement.id.split(\'-\')[1];
  7198. sse_updateNotifications(parentId, nmid);
  7199. }
  7200.  
  7201. // Special handling for forum notifications
  7202. let forumNotifications = document.querySelectorAll(\'.notification-forum\');
  7203. forumNotifications.forEach(function (forumNotification) {
  7204. let fmids = decodeURIComponent(forumNotification.dataset.b64mids);
  7205. let parentId = forumNotification.parentElement.id.split(\'-\')[1];
  7206.  
  7207. if (fmids.indexOf(nmid) > -1) {
  7208. let updateElem = document.querySelector(`.${parentId}-update`);
  7209. let fcount = Number(updateElem.innerText);
  7210. fcount--;
  7211. updateElem.innerText = fcount;
  7212.  
  7213. if (fcount < 1) {
  7214. let button = document.querySelector(`.${parentId}-button`);
  7215. button.style.display = \'none\';
  7216. let subMenu = document.querySelector(`#nav-${parentId}-sub`);
  7217. if (subMenu) subMenu.classList.remove(\'show\');
  7218. }
  7219.  
  7220. let countElem = forumNotification.querySelector(\'.bg-secondary\');
  7221. let count = Number(countElem.innerText);
  7222. count--;
  7223. countElem.innerText = count;
  7224.  
  7225. if (count < 1) {
  7226. forumNotification.remove();
  7227. }
  7228. }
  7229. });
  7230. });
  7231. }
  7232. }
  7233.  
  7234. function sse_fallback() {
  7235. fetch(\'/sse\')
  7236. .then(response => response.json())
  7237. .then(obj => {
  7238. if (!obj) return;
  7239.  
  7240. console.log(\'sse fallback\');
  7241. console.log(obj);
  7242.  
  7243. sse_handleNotifications(obj, false, false);
  7244. })
  7245. .catch(error => {
  7246. console.error(\'Error fetching SSE data:\', error);
  7247. });
  7248. }
  7249.  
  7250. </script>
  7251.  
  7252. <div id="notifications_wrapper" class="mb-0">
  7253. <div id="no_notifications" class="d-block d-none">
  7254. 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>
  7255. </div>
  7256. <div id="nav-notifications-template" rel="template" class="d-none">
  7257. <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}">
  7258. <img data-src="{1}" loading="lazy" class="rounded float-start me-2 menu-img-2">
  7259. <div class="text-nowrap">
  7260. <div class="d-flex justify-content-between align-items-center lh-sm">
  7261. <div class="text-truncate pe-1">
  7262. <strong title="{2} - {3}">{2}</strong>
  7263. </div>
  7264. <small class="autotime-narrow opacity-75" title="{5}"></small>
  7265. </div>
  7266. <div class="text-truncate">{4}</div>
  7267. </div>
  7268. </a>
  7269. </div>
  7270. <div id="nav-notifications-forums-template" rel="template" class="d-none">
  7271. <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}\'>
  7272. <div>
  7273. <img class="menu-img-1" data-src="{1}" loading="lazy">
  7274. <span>{2}</span>
  7275. </div>
  7276. <span class="badge bg-secondary">{10}</span>
  7277. </a>
  7278. </div>
  7279. <div id="notifications" class="border border-top-0 rounded navbar-nav collapse">
  7280. <div class="rounded-top rounded-bottom border border-start-0 border-end-0 border-bottom-0 list-group list-group-flush collapse pubs-button">
  7281. <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">
  7282. <div>
  7283. <i class="bi bi-globe generic-icons-nav"></i>
  7284. Public Stream
  7285. </div>
  7286. <span class="badge bg-secondary pubs-update"></span>
  7287. </a>
  7288. </div>
  7289. <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">
  7290. <a class="list-group-item list-group-item-action text-decoration-none" id="nav-pubs-see-all" href="pubstream">
  7291. <i class="bi bi-box-arrow-up-right generic-icons-nav"></i> Public stream
  7292. </a>
  7293. <div class="list-group-item list-group-item-action cursor-pointer" id="tt-pubs-only">
  7294. <i class="bi bi-funnel generic-icons-nav"></i> Show new posts only
  7295. </div>
  7296. <div class="list-group-item clearfix notifications-textinput" id="cn-pubs-only">
  7297. <div class="text-muted notifications-textinput-filter"><i class="bi bi-filter"></i></div>
  7298. <input id="cn-pubs-input" type="text" class="notification-filter form-control form-control-sm" placeholder="Filter by name or address">
  7299. <div id="cn-pubs-input-clear" class="text-muted notifications-textinput-clear d-none"><i class="bi bi-x-lg"></i></div>
  7300. </div>
  7301. <div id="nav-pubs-menu" class="list-group list-group-flush"></div>
  7302. <div id="nav-pubs-loading" class="list-group-item" style="display: none;">
  7303. Loading<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
  7304. </div>
  7305. </div>
  7306. </div>
  7307. </div>
  7308.  
  7309.  
  7310.  
  7311.  
  7312. </div>
  7313. </div>
  7314. <div id="region_3" class="pe-0">
  7315. <div id="right_aside_wrapper">
  7316.  
  7317. <div class="card mb-3">
  7318. <!--<h3 class="card-header">Card header</h3>-->
  7319. <img class="d-block user-select-none" width="100%" style="font-size:1.125rem;text-anchor:middle"
  7320. src="https://hub.hubzilla.hu/photo/fa3f4813-e4dc-4837-a7a6-4b86b220e970-9"></img>
  7321. <div class="card-body">
  7322. <div class="d-flex">
  7323. <div id="profile-photo-wrapper" class="bg-body-secondary overflow-hidden me-2"
  7324. style="min-width: 5rem; min-height: 5rem;">
  7325. <img class="img-thumbnail" src="https://hub.hubzilla.hu/photo/profile/m/5?rev=2024-04-01+16%3A34%3A27"
  7326. alt="Der Pepe (Hubzilla) ⁂ ⚝" style="width: 5rem; height: 5rem;">
  7327. </div>
  7328. <div class="vstack d-flex flex-column justify-content-start mt-auto mb-auto">
  7329. <div class="card-title">Der Pepe (Hubzilla) ⁂ ⚝<i class="bi bi-wifi-off text-danger ps-2"
  7330. title=""></i> </div>
  7331. <div class="card-subtitle text-muted">pepecyb&#x40;hub.hubzilla.hu</div>
  7332. </div>
  7333. </div>
  7334. </div>
  7335.  
  7336. <div class="card-body pt-0">
  7337. <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>
  7338. </div>
  7339.  
  7340. <ul class="list-group list-group-flush">
  7341. <li class="list-group-item">
  7342. <dt class="location-label">Location:</dt>
  7343. <dd class="adr h-adr">
  7344. <div class="city-state-zip">
  7345. <span class="postal-code p-postal-code"></span>
  7346. <span class="locality p-locality">Nagybaracska</span>
  7347. </div>
  7348. <div class="region p-region">Bács-Kiskun</div>
  7349. <div class="country-name p-country-name">Magyarország</div>
  7350. </dd>
  7351. </li>
  7352. <li class="list-group-item">
  7353.  
  7354. <dt class="gender-label">Gender:</dt>
  7355. <dd class="p-gender">Männlich</dd>
  7356. </li>
  7357. <li class="list-group-item">
  7358.  
  7359. <dt class="marital-label"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Status:</dt>
  7360. <dd class="marital-text ps-2">Verheiratet</dd>
  7361. </li>
  7362. <li class="list-group-item">
  7363. <dt class="card-link"><span class="heart"><i class="bi fa-heart"></i>&nbsp;</span>Homepage:</dt>
  7364. <dd class="ps-2">
  7365. <a href="https://pepecyb.hu" rel="me nofollow" >https://pepecyb.hu</a>
  7366. </dd>
  7367. </li>
  7368. </ul>
  7369. </div>
  7370.  
  7371.  
  7372. <div class="card mb-3">
  7373. <div class="card-header">
  7374. Connections
  7375. <div class="card-tools">
  7376. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  7377. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  7378. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  7379. </button>
  7380. <button type="button" class="btn btn-tool" data-lte-toggle="card-remove">
  7381. <i class="bi bi-x-lg"></i>
  7382. </button>
  7383. </div>
  7384. </div>
  7385. <!-- /.card-header -->
  7386. <div class="card-body p-0">
  7387. <div class="row text-center m-1">
  7388. <div class="col-3 p-2">
  7389. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/37250b05-6428-4934-b360-d316b0d23d70-6" alt="" title="blingbling [blingbling@federation.network]">
  7390. <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">
  7391. blingbling [blingbling@federation.network]
  7392. </a>
  7393. <div class="fs-8">
  7394. </div>
  7395. </div>
  7396.  
  7397. <div class="col-3 p-2">
  7398. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7e05d060-1934-4521-b7be-ddd72c206175-6" alt="" title="loops [loops@pixelfed.social]">
  7399. <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">
  7400. loops [loops@pixelfed.social]
  7401. </a>
  7402. <div class="fs-8">
  7403. </div>
  7404. </div>
  7405.  
  7406. <div class="col-3 p-2">
  7407. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0891c0c7-6d75-4eb2-ac38-70e25d23d219-6" alt="" title="Papa Dragon [thomas@caselibre.fr]">
  7408. <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">
  7409. Papa Dragon [thomas@caselibre.fr]
  7410. </a>
  7411. <div class="fs-8">
  7412. </div>
  7413. </div>
  7414.  
  7415. <div class="col-3 p-2">
  7416. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e88c41ef-a9be-4df8-9609-71c2b9819620-6" alt="" title="Tiger_micha [tigerchen@klacker.org]">
  7417. <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">
  7418. Tiger_micha [tigerchen@klacker.org]
  7419. </a>
  7420. <div class="fs-8">
  7421. </div>
  7422. </div>
  7423.  
  7424. <div class="col-3 p-2">
  7425. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/54e655f2-85a4-461f-9f1b-481b134a86e3-6" alt="" title="Samuel Mumm [mumm@wizard.casa]">
  7426. <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">
  7427. Samuel Mumm [mumm@wizard.casa]
  7428. </a>
  7429. <div class="fs-8">
  7430. </div>
  7431. </div>
  7432.  
  7433. <div class="col-3 p-2">
  7434. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e21bd4b1-28d0-4a1c-a514-7167727ff3fa-6" alt="" title="grischa [grischa@procial.tchncs.de]">
  7435. <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">
  7436. grischa [grischa@procial.tchncs.de]
  7437. </a>
  7438. <div class="fs-8">
  7439. </div>
  7440. </div>
  7441.  
  7442. <div class="col-3 p-2">
  7443. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/e76efbea-96ea-41d4-814a-119e9ec7ddaa-6" alt="" title="Steffen [steffen@www.top-netz.eu]">
  7444. <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">
  7445. Steffen [steffen@www.top-netz.eu]
  7446. </a>
  7447. <div class="fs-8">
  7448. </div>
  7449. </div>
  7450.  
  7451. <div class="col-3 p-2">
  7452. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3f1c850f-1982-4912-9755-cc3136f52a32-6" alt="" title="Ulrich (Hubzilla) [ulrich@hub.netzgemeinde.eu]">
  7453. <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">
  7454. Ulrich (Hubzilla) [ulrich@hub.netzgemeinde.eu]
  7455. </a>
  7456. <div class="fs-8">
  7457. </div>
  7458. </div>
  7459.  
  7460. <div class="col-3 p-2">
  7461. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d0f47fea-c506-4a66-8552-347cdc3fcb23-6" alt="" title="Sören Hentzschel 🦊 [s_hentzschel@social.agenedia.com]">
  7462. <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">
  7463. Sören Hentzschel 🦊 [s_hentzschel@social.agenedia.com]
  7464. </a>
  7465. <div class="fs-8">
  7466. </div>
  7467. </div>
  7468.  
  7469. <div class="col-3 p-2">
  7470. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/eb41538c-9b4a-4a0f-85d6-ad2cecda89c8-6" alt="" title="Asterix Archiv - Comedix.de 💎 [Asterix_Archiv@troet.cafe]">
  7471. <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">
  7472. Asterix Archiv - Comedix.de 💎 [Asterix_Archiv@troet.cafe]
  7473. </a>
  7474. <div class="fs-8">
  7475. </div>
  7476. </div>
  7477.  
  7478. <div class="col-3 p-2">
  7479. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4d558ee8-3df2-4a88-8a94-05dcd70b278f-6" alt="" title="Em :official_verified: [Em0nM4stodon@infosec.exchange]">
  7480. <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">
  7481. Em :official_verified: [Em0nM4stodon@infosec.exchange]
  7482. </a>
  7483. <div class="fs-8">
  7484. </div>
  7485. </div>
  7486.  
  7487. <div class="col-3 p-2">
  7488. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b1684eb6-162b-4c62-b61c-d5225766cfc0-6" alt="" title="Doris [doris@www.top-netz.eu]">
  7489. <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">
  7490. Doris [doris@www.top-netz.eu]
  7491. </a>
  7492. <div class="fs-8">
  7493. </div>
  7494. </div>
  7495.  
  7496. <div class="col-3 p-2">
  7497. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/3073bf5a-5951-4e80-b5d8-721454824331-6" alt="" title="Holarse - Spielen unter Linux [holarse@mastodon.social]">
  7498. <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">
  7499. Holarse - Spielen unter Linux [holarse@mastodon.social]
  7500. </a>
  7501. <div class="fs-8">
  7502. </div>
  7503. </div>
  7504.  
  7505. <div class="col-3 p-2">
  7506. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1d4e0a27-5326-433e-adf7-2fc74df77678-6" alt="" title="𝓒𝓱𝓻𝓲𝓼 [chris@im.allmendenetz.de]">
  7507. <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">
  7508. 𝓒𝓱𝓻𝓲𝓼 [chris@im.allmendenetz.de]
  7509. </a>
  7510. <div class="fs-8">
  7511. </div>
  7512. </div>
  7513.  
  7514. <div class="col-3 p-2">
  7515. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/49edea19-a2f4-4bf3-bd93-ceba26b4688c-6" alt="" title="Umweltbundesamt [Umweltbundesamt@social.bund.de]">
  7516. <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">
  7517. Umweltbundesamt [Umweltbundesamt@social.bund.de]
  7518. </a>
  7519. <div class="fs-8">
  7520. </div>
  7521. </div>
  7522.  
  7523. <div class="col-3 p-2">
  7524. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2c9d71f0-59e9-412d-b1bb-0bcb308d2e0a-6" alt="" title="Hubzilla Users Support [hubzillauserssp@zotum.net]">
  7525. <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">
  7526. Hubzilla Users Support [hubzillauserssp@zotum.net]
  7527. </a>
  7528. <div class="fs-8">
  7529. </div>
  7530. </div>
  7531.  
  7532. <div class="col-3 p-2">
  7533. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/598a6ec9-7194-4012-a750-345d3b6e548c-6" alt="" title="elmussol [elmussol@streams.elsmussols.net]">
  7534. <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">
  7535. elmussol [elmussol@streams.elsmussols.net]
  7536. </a>
  7537. <div class="fs-8">
  7538. </div>
  7539. </div>
  7540.  
  7541. <div class="col-3 p-2">
  7542. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/9dde8727-cff8-4257-8a10-c4ace284117d-6" alt="" title="SK [sk@hub.utsukta.org]">
  7543. <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">
  7544. SK [sk@hub.utsukta.org]
  7545. </a>
  7546. <div class="fs-8">
  7547. </div>
  7548. </div>
  7549.  
  7550. <div class="col-3 p-2">
  7551. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a0345f6-c2f9-4f0b-92c5-dc6bf6157660-6" alt="" title="Witcraft (Hubzilla) [witcraft@hub.hubzilla.de]">
  7552. <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">
  7553. Witcraft (Hubzilla) [witcraft@hub.hubzilla.de]
  7554. </a>
  7555. <div class="fs-8">
  7556. </div>
  7557. </div>
  7558.  
  7559. <div class="col-3 p-2">
  7560. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1901d077-c08c-42b5-aca2-ec4b63c7787a-6" alt="" title="Hubzilla Statistics [hubzilla@libera.site]">
  7561. <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">
  7562. Hubzilla Statistics [hubzilla@libera.site]
  7563. </a>
  7564. <div class="fs-8">
  7565. </div>
  7566. </div>
  7567.  
  7568. <div class="col-3 p-2">
  7569. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/2a98c377-5d4a-42e8-a989-6587372b3b16-6" alt="" title="openJur [openjur@legal.social]">
  7570. <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">
  7571. openJur [openjur@legal.social]
  7572. </a>
  7573. <div class="fs-8">
  7574. </div>
  7575. </div>
  7576.  
  7577. <div class="col-3 p-2">
  7578. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/6f1e7cc1-00b0-4e87-8505-2a2f0895bb53-6" alt="" title="Samuel Mumm [s_mumm@iceshrimp.de]">
  7579. <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">
  7580. Samuel Mumm [s_mumm@iceshrimp.de]
  7581. </a>
  7582. <div class="fs-8">
  7583. </div>
  7584. </div>
  7585.  
  7586. <div class="col-3 p-2">
  7587. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/d311e869-272f-4439-b313-c5a4b55c8af6-6" alt="" title="NorVegan [norvegan@zotum.net]">
  7588. <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">
  7589. NorVegan [norvegan@zotum.net]
  7590. </a>
  7591. <div class="fs-8">
  7592. </div>
  7593. </div>
  7594.  
  7595. <div class="col-3 p-2">
  7596. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/829e2bf7-2331-4379-9cad-83a634d7fe2e-6" alt="" title="*_jayrope [jrp@hub.kliklak.net]">
  7597. <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">
  7598. *_jayrope [jrp@hub.kliklak.net]
  7599. </a>
  7600. <div class="fs-8">
  7601. </div>
  7602. </div>
  7603.  
  7604. <div class="col-3 p-2">
  7605. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/11da7983-89af-43b6-9d50-038e8fb26d4a-6" alt="" title="Wild auf Anfrage [tylers@muenster.im]">
  7606. <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">
  7607. Wild auf Anfrage [tylers@muenster.im]
  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/ed0eb0e9-fe40-4c87-bba8-9b65397ae9a0-6" alt="" title="Tuxi ⁂ [tux@anonsys.net]">
  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%2Fanonsys.net%2Fprofile%2Ftux">
  7616. Tuxi ⁂ [tux@anonsys.net]
  7617. </a>
  7618. <div class="fs-8">
  7619. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  7620. </div>
  7621. </div>
  7622.  
  7623. <div class="col-3 p-2">
  7624. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/5afce6d7-c23e-4e60-b5a5-045b1d320d21-6" alt="" title="Hiker [hiker@social.fedcast.ch]">
  7625. <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">
  7626. Hiker [hiker@social.fedcast.ch]
  7627. </a>
  7628. <div class="fs-8">
  7629. </div>
  7630. </div>
  7631.  
  7632. <div class="col-3 p-2">
  7633. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/7a358b42-6f1f-441d-a5d2-ca6274f5e212-6" alt="" title="NitrumRider [NitrumRider@mastodon.social]">
  7634. <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">
  7635. NitrumRider [NitrumRider@mastodon.social]
  7636. </a>
  7637. <div class="fs-8">
  7638. </div>
  7639. </div>
  7640.  
  7641. <div class="col-3 p-2">
  7642. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/753b4232-045e-4169-b6d7-2315dff68233-6" alt="" title="Stefan Haydn [sh@hub.hayfidelity.de]">
  7643. <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">
  7644. Stefan Haydn [sh@hub.hayfidelity.de]
  7645. </a>
  7646. <div class="fs-8">
  7647. </div>
  7648. </div>
  7649.  
  7650. <div class="col-3 p-2">
  7651. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/921c421b-92dd-41ac-8d6d-af988ef05a1a-6" alt="" title="JaeCdS [jaecds@metalhead.club]">
  7652. <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">
  7653. JaeCdS [jaecds@metalhead.club]
  7654. </a>
  7655. <div class="fs-8">
  7656. </div>
  7657. </div>
  7658.  
  7659. <div class="col-3 p-2">
  7660. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/24850c9c-d56c-4877-9ff1-9d0e070af034-6" alt="" title="heise online Top News [heiseonline_TopNews@social.heise.de]">
  7661. <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">
  7662. heise online Top News [heiseonline_TopNews@social.heise.de]
  7663. </a>
  7664. <div class="fs-8">
  7665. </div>
  7666. </div>
  7667.  
  7668. <div class="col-3 p-2">
  7669. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/1e473e03-84f9-41ff-99ce-46a60d1ce889-6" alt="" title="M. Dent [dm42@my.hosted.social]">
  7670. <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">
  7671. M. Dent [dm42@my.hosted.social]
  7672. </a>
  7673. <div class="fs-8">
  7674. </div>
  7675. </div>
  7676.  
  7677. <div class="col-3 p-2">
  7678. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/4e5cd7b1-c5de-4ce2-a503-fa607a814809-6" alt="" title="wikimediaDE [wikimediaDE@social.wikimedia.de]">
  7679. <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">
  7680. wikimediaDE [wikimediaDE@social.wikimedia.de]
  7681. </a>
  7682. <div class="fs-8">
  7683. </div>
  7684. </div>
  7685.  
  7686. <div class="col-3 p-2">
  7687. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/b6c9919b-66b9-4cf9-a009-43212bc38205-6" alt="" title="Samuel Mumm [sammumm@loma.ml]">
  7688. <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">
  7689. Samuel Mumm [sammumm@loma.ml]
  7690. </a>
  7691. <div class="fs-8">
  7692. </div>
  7693. </div>
  7694.  
  7695. <div class="col-3 p-2">
  7696. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/932b3db3-fbee-477c-b3f6-d45be20e927f-6" alt="" title="Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [Carlos@moppels.bar]">
  7697. <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">
  7698. Carlos (Moppelkotzer) :calckey: 🔜 :firefish: [Carlos@moppels.bar]
  7699. </a>
  7700. <div class="fs-8">
  7701. </div>
  7702. </div>
  7703.  
  7704. <div class="col-3 p-2">
  7705. <img class="img-fluid rounded-circle" src="https://hub.hubzilla.hu/photo/0016ce16-26da-4f14-864c-90df9ded2b03-6" alt="" title="zotlabs.org | Hubzilla Development [hubzilla-development@zotlabs.org]">
  7706. <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">
  7707. zotlabs.org | Hubzilla Development [hubzilla-development@zotlabs.org]
  7708. </a>
  7709. <div class="fs-8">
  7710. <i class="small bi bi-circle-fill oneway-overlay text-danger" title="Accepts: Nothing"></i>
  7711. </div>
  7712. </div>
  7713.  
  7714. </div>
  7715. <!-- /.users-list -->
  7716. </div>
  7717. <!-- /.card-body -->
  7718. <div class="card-footer text-center">
  7719. <a href="viewconnections/pepecyb"
  7720. class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View all 289 connections</a>
  7721. </div>
  7722. <!-- /.card-footer -->
  7723. </div>
  7724.  
  7725.  
  7726. <div id="pmenu-2" class="pmenu card mb-3">
  7727. <div class="card-body">
  7728. <ul
  7729. class="pmenu-body nav nav-pills flex-column">
  7730. <li id="pmenu-item-3" class="nav-item pmenu-item">
  7731. <a href="https://hub.hubzilla.hu/page/pepecyb/about"
  7732. class="nav-link " rel="nofollow noopener">Über Whoville</a>
  7733. </li>
  7734. <li id="pmenu-item-9" class="nav-item pmenu-item">
  7735. <a href="https://hzhelp.pepecyb.hu/"
  7736. class="nav-link " target="_blank" rel="nofollow noopener">Hilfe</a>
  7737. </li>
  7738. </ul>
  7739. <div class="pmenu-end"></div>
  7740. </div>
  7741. </div>
  7742.  
  7743.  
  7744. <script>
  7745.  
  7746. function toggle_posted_date_button() {
  7747. if($(\'#posted-date-dropdown\').is(\':visible\')) {
  7748. $(\'#posted-date-icon\').removeClass(\'bi-chevron-up\');
  7749. $(\'#posted-date-icon\').addClass(\'bi-chevron-down\');
  7750. $(\'#posted-date-dropdown\').hide();
  7751. }
  7752. else {
  7753. $(\'#posted-date-icon\').addClass(\'bi-chevron-up\');
  7754. $(\'#posted-date-icon\').removeClass(\'bi-chevron-down\');
  7755. $(\'#posted-date-dropdown\').show();
  7756. }
  7757. }
  7758. </script>
  7759.  
  7760.  
  7761. <div id="datebrowse-sidebar" class="card mb-3">
  7762. <div class="card-header">
  7763. Archives
  7764. </div>
  7765. <div class="card-body">
  7766. <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
  7767. <ul id="posted-date-selector" class="nav nav-pills flex-column">
  7768. <li class="nav-item" id="posted-date-selector-year-2025">
  7769. <a class="nav-link" href="#" onclick="openClose(\'posted-date-selector-2025\'); return false;">2025</a>
  7770. </li>
  7771. <div id="posted-date-selector-2025" style="display: none;">
  7772. <ul class="posted-date-selector-months nav nav-pills flex-column">
  7773. <li class="nav-item">
  7774. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-03-31\'); return false;">March</a>
  7775. </li>
  7776. <li class="nav-item">
  7777. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-02-28\'); return false;">February</a>
  7778. </li>
  7779. <li class="nav-item">
  7780. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2025-01-31\'); return false;">January</a>
  7781. </li>
  7782. </ul>
  7783. </div>
  7784. <li class="nav-item" id="posted-date-selector-year-2024">
  7785. <a class="nav-link" href="#" onclick="openClose(\'posted-date-selector-2024\'); return false;">2024</a>
  7786. </li>
  7787. <div id="posted-date-selector-2024" style="display: none;">
  7788. <ul class="posted-date-selector-months nav nav-pills flex-column">
  7789. <li class="nav-item">
  7790. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-12-31\'); return false;">December</a>
  7791. </li>
  7792. <li class="nav-item">
  7793. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-11-30\'); return false;">November</a>
  7794. </li>
  7795. <li class="nav-item">
  7796. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-10-31\'); return false;">October</a>
  7797. </li>
  7798. <li class="nav-item">
  7799. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-09-30\'); return false;">September</a>
  7800. </li>
  7801. <li class="nav-item">
  7802. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-08-31\'); return false;">August</a>
  7803. </li>
  7804. <li class="nav-item">
  7805. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-07-31\'); return false;">July</a>
  7806. </li>
  7807. <li class="nav-item">
  7808. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-06-30\'); return false;">June</a>
  7809. </li>
  7810. <li class="nav-item">
  7811. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-05-31\'); return false;">May</a>
  7812. </li>
  7813. <li class="nav-item">
  7814. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-04-30\'); return false;">April</a>
  7815. </li>
  7816. <li class="nav-item">
  7817. <a class="nav-link" href="#" onclick="dateSubmit(\'https://hub.hubzilla.hu/channel/pepecyb?f=&dend=2024-03-31\'); return false;">March</a>
  7818. </li>
  7819. </ul>
  7820. </div>
  7821. </ul>
  7822. </div>
  7823. </div>
  7824.  
  7825. <div id="categories-sidebar" class="card mb-3">
  7826. <div class="card-header">
  7827. Categories
  7828. </div>
  7829. <div class="card-body">
  7830. <div id="categories-sidebar-desc"></div>
  7831.  
  7832. <ul class="nav nav-pills flex-column">
  7833. <li class="nav-item"><a href="channel/pepecyb" class="nav-link active">Everything</a></li>
  7834. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfdruck-Presse"
  7835. class="nav-link">Dampfdruck-Presse</a></li>
  7836. <li class="nav-item"><a href="channel/pepecyb/?cat=Dampfen"
  7837. class="nav-link">Dampfen</a></li>
  7838. <li class="nav-item"><a href="channel/pepecyb/?cat=Dokumentation"
  7839. class="nav-link">Dokumentation</a></li>
  7840. <li class="nav-item"><a href="channel/pepecyb/?cat=Fediverse"
  7841. class="nav-link">Fediverse</a></li>
  7842. <li class="nav-item"><a href="channel/pepecyb/?cat=Firefish"
  7843. class="nav-link">Firefish</a></li>
  7844. <li class="nav-item"><a href="channel/pepecyb/?cat=Friendica"
  7845. class="nav-link">Friendica</a></li>
  7846. <li class="nav-item"><a href="channel/pepecyb/?cat=Gastbeitrag"
  7847. class="nav-link">Gastbeitrag</a></li>
  7848. <li class="nav-item"><a href="channel/pepecyb/?cat=go"
  7849. class="nav-link">go</a></li>
  7850. <li class="nav-item"><a href="channel/pepecyb/?cat=golang"
  7851. class="nav-link">golang</a></li>
  7852. <li class="nav-item"><a href="channel/pepecyb/?cat=Hilfe"
  7853. class="nav-link">Hilfe</a></li>
  7854. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla"
  7855. class="nav-link">Hubzilla</a></li>
  7856. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-H%C3%A4ppchen"
  7857. class="nav-link">Hubzilla-Häppchen</a></li>
  7858. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzilla-Hilfe"
  7859. class="nav-link">Hubzilla-Hilfe</a></li>
  7860. <li class="nav-item"><a href="channel/pepecyb/?cat=Hubzillah%C3%A4ppchen"
  7861. class="nav-link">Hubzillahäppchen</a></li>
  7862. <li class="nav-item"><a href="channel/pepecyb/?cat=Kommentar"
  7863. class="nav-link">Kommentar</a></li>
  7864. <li class="nav-item"><a href="channel/pepecyb/?cat=Pepes%20Microblog"
  7865. class="nav-link">Pepes Microblog</a></li>
  7866. <li class="nav-item"><a href="channel/pepecyb/?cat=Pfrunzlers%20Weekly"
  7867. class="nav-link">Pfrunzlers Weekly</a></li>
  7868. <li class="nav-item"><a href="channel/pepecyb/?cat=Politik"
  7869. class="nav-link">Politik</a></li>
  7870. <li class="nav-item"><a href="channel/pepecyb/?cat=Support"
  7871. class="nav-link">Support</a></li>
  7872. <li class="nav-item"><a href="channel/pepecyb/?cat=WHO"
  7873. class="nav-link">WHO</a></li>
  7874. <li class="nav-item"><a href="channel/pepecyb/?cat=Wochenblick"
  7875. class="nav-link">Wochenblick</a></li>
  7876. </ul>
  7877. </div>
  7878. </div>
  7879.  
  7880. <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>
  7881. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=CWFediverseMeta" class="tag2">CWFediverseMeta</a>
  7882. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLong" class="tag3">CWLong</a>
  7883. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=CWLongPost" class="tag3">CWLongPost</a>
  7884. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=dampfdruck-presse" class="tag8">dampfdruck-presse</a>
  7885. <span class="tag8">#</span><a href="channel/pepecyb?f=&tag=ddp" class="tag8">ddp</a>
  7886. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-dampfger%C3%A4t" class="tag9">e-dampfgerät</a>
  7887. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=e-zigarette" class="tag9">e-zigarette</a>
  7888. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediMeta" class="tag2">FediMeta</a>
  7889. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediTips" class="tag6">FediTips</a>
  7890. <span class="tag7">#</span><a href="channel/pepecyb?f=&tag=fediverse" class="tag7">fediverse</a>
  7891. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=FediverseMeta" class="tag2">FediverseMeta</a>
  7892. <span class="tag6">#</span><a href="channel/pepecyb?f=&tag=FediverseTips" class="tag6">FediverseTips</a>
  7893. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=friendica" class="tag3">friendica</a>
  7894. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=hubzilla" class="tag9">hubzilla</a>
  7895. <span class="tag2">#</span><a href="channel/pepecyb?f=&tag=hubzillah%C3%A4ppchen" class="tag2">hubzillahäppchen</a>
  7896. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=liquidvernebler" class="tag9">liquidvernebler</a>
  7897. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=Long" class="tag3">Long</a>
  7898. <span class="tag3">#</span><a href="channel/pepecyb?f=&tag=LongPost" class="tag3">LongPost</a>
  7899. <span class="tag4">#</span><a href="channel/pepecyb?f=&tag=mastodon" class="tag4">mastodon</a>
  7900. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=pfrunzel" class="tag9">pfrunzel</a>
  7901. <span class="tag1">#</span><a href="channel/pepecyb?f=&tag=pfrunzlersweekly" class="tag1">pfrunzlersweekly</a>
  7902. <span class="tag9">#</span><a href="channel/pepecyb?f=&tag=vape" class="tag9">vape</a>
  7903. <span class="tag5">#</span><a href="channel/pepecyb?f=&tag=wochenblick" class="tag5">wochenblick</a>
  7904. </div></div>
  7905.  
  7906. </div>
  7907. </div>
  7908. </div>
  7909. </div>
  7910. </div>
  7911. </div>
  7912. </div>
  7913. </main>
  7914. <!-- /.content-wrapper -->
  7915.  
  7916. </div>
  7917. <!-- ./wrapper -->
  7918. <script>
  7919. // Color Mode Toggler
  7920. (() => {
  7921. "use strict";
  7922.  
  7923. const storedTheme = localStorage.getItem("theme");
  7924.  
  7925. const getPreferredTheme = () => {
  7926. if (storedTheme) {
  7927. return storedTheme;
  7928. }
  7929.  
  7930. return window.matchMedia("(prefers-color-scheme: dark)").matches ?
  7931. "dark" :
  7932. "light";
  7933. };
  7934.  
  7935. const setTheme = function(theme) {
  7936. if (theme === "auto" && window.matchMedia("(prefers-color-scheme: dark)").matches) {
  7937. document.documentElement.setAttribute("data-bs-theme", "dark");
  7938. } else {
  7939. document.documentElement.setAttribute("data-bs-theme", theme);
  7940. }
  7941. };
  7942.  
  7943. const showActiveTheme = (theme, focus = false) => {
  7944. const themeSwitcher = document.querySelector("#bd-theme");
  7945.  
  7946. if (!themeSwitcher) {
  7947. return;
  7948. }
  7949.  
  7950. const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  7951. const inputToCheck = document.querySelector(`#bd-theme input[data-bs-theme-value="${theme}"]`);
  7952.  
  7953. for (const element of document.querySelectorAll("[data-bs-theme-value]")) {
  7954. element.classList.remove("active");
  7955. element.setAttribute("aria-pressed", "false");
  7956. }
  7957.  
  7958. btnToActive.classList.add("active");
  7959. btnToActive.setAttribute("aria-pressed", "true");
  7960.  
  7961. // Update the checked state of the radio button
  7962. if (inputToCheck) {
  7963. inputToCheck.checked = true;
  7964. }
  7965.  
  7966. if (focus) {
  7967. btnToActive.focus();
  7968. }
  7969. };
  7970.  
  7971. setTheme(getPreferredTheme());
  7972.  
  7973. window
  7974. .matchMedia("(prefers-color-scheme: dark)")
  7975. .addEventListener("change", () => {
  7976. if (storedTheme !== "light" || storedTheme !== "dark") {
  7977. setTheme(getPreferredTheme());
  7978. }
  7979. });
  7980.  
  7981. window.addEventListener("DOMContentLoaded", () => {
  7982. showActiveTheme(getPreferredTheme());
  7983.  
  7984. for (const toggle of document.querySelectorAll("[data-bs-theme-value]")) {
  7985. toggle.addEventListener("click", () => {
  7986. const theme = toggle.getAttribute("data-bs-theme-value");
  7987. localStorage.setItem("theme", theme);
  7988. setTheme(theme);
  7989. showActiveTheme(theme, true);
  7990. });
  7991. }
  7992. });
  7993. })();
  7994. </script>
  7995. <script>
  7996. const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
  7997. const Default = {
  7998. scrollbarTheme: "os-theme-light",
  7999. scrollbarAutoHide: "leave",
  8000. scrollbarClickScroll: true,
  8001. };
  8002. document.addEventListener("DOMContentLoaded", function() {
  8003. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  8004. if (
  8005. sidebarWrapper &&
  8006. typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
  8007. ) {
  8008. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  8009. scrollbars: {
  8010. theme: Default.scrollbarTheme,
  8011. autoHide: Default.scrollbarAutoHide,
  8012. clickScroll: Default.scrollbarClickScroll,
  8013. },
  8014. });
  8015. }
  8016. });
  8017. </script> <!--end::OverlayScrollbars Configure-->
  8018. </body>
  8019.  
  8020. </html>
  8021. ',
  8022. 'data' => NULL,
  8023. 'meta' => NULL,
  8024. 'valid' => false,
  8025. 'deleted' => false,
  8026. 'portable_id' => NULL,
  8027. 'id' => '',
  8028. 'parent_id' => '',
  8029. 'type' => '',
  8030. 'actor' => NULL,
  8031. 'obj' => NULL,
  8032. 'tgt' => NULL,
  8033. 'origin' => NULL,
  8034. 'owner' => NULL,
  8035. 'signer' => NULL,
  8036. 'sig' => NULL,
  8037. 'sigok' => false,
  8038. 'recips' => NULL,
  8039. 'raw_recips' => NULL,
  8040. 'saved_recips' => NULL,
  8041. ))
  8042.  
  8043.  
Add Comment
Please, Sign In to add comment