Seb 4 дней назад
Родитель
Сommit
a03bd8316b

+ 7 - 5
README.md

@@ -37,8 +37,8 @@ where you can insert your own data.
 The commandline version has the disadvantage that you can only set up one
 The commandline version has the disadvantage that you can only set up one
 channel to be run.
 channel to be run.
 
 
-WHAT'S NEW IN 1.0.a
--------------------
+WHAT'S NEW IN 1.0a
+------------------
  * A guided setup: 'perl setup.pl'.
  * A guided setup: 'perl setup.pl'.
  * Modern light/dark themes, a menu down the left side on wide screens (a slim
  * Modern light/dark themes, a menu down the left side on wide screens (a slim
    section bar on phones), and an interactive relation map ('who talks to
    section bar on phones), and an interactive relation map ('who talks to
@@ -94,13 +94,15 @@ be in your own language; look in lang.txt to see the supported languages.
 The language can be changed from within the pisg.cfg file.
 The language can be changed from within the pisg.cfg file.
 
 
 If you have any corrections to the language file, or you want to add a new
 If you have any corrections to the language file, or you want to add a new
-translation, then send it to the mailing list.
+translation, open a pull request at https://github.com/PISG/pisg.
 
 
 CONTACT INFORMATION
 CONTACT INFORMATION
 -------------------
 -------------------
 If you have any issues with pisg, such as problems with installing or
 If you have any issues with pisg, such as problems with installing or
-running pisg, then join us on the freenode IRC Network: chat.freenode.net on #pisg
+running pisg, then join us on Undernet: irc.undernet.org, channel #pisg.
+
+Bugs, patches and feature requests: https://github.com/PISG/pisg/issues
 
 
-The pisg homepage is located at http://pisg.github.io/.
+The pisg homepage is located at https://pisg.github.io/.
 
 
 Have fun :)
 Have fun :)

+ 1 - 1
docs/CREDITS

@@ -3,7 +3,7 @@ Project management:
   - Morten Brix Pedersen <morten(at)wtf.dk>
   - Morten Brix Pedersen <morten(at)wtf.dk>
   - Christoph Berg <cb(at)df7cb.de>
   - Christoph Berg <cb(at)df7cb.de>
   - James "HM2K" <james(at)hm2k.org>
   - James "HM2K" <james(at)hm2k.org>
-  - Sebastien "Seb" Lemery <seblemery(at)gmail.com>
+  - Seb Lemery <seblemery(at)gmail.com>
 
 
 Major contributions:
 Major contributions:
 
 

+ 3 - 3
docs/Changelog

@@ -1,4 +1,4 @@
-pisg (1.0.a) - Mon Sep, 21st 2026
+pisg (1.0a) - Mon Sep, 21st 2026
     The "Modern Look" Release.
     The "Modern Look" Release.
     pisg maintainers:
     pisg maintainers:
     * Guided setup: run "perl setup.pl". It looks for logs already on the
     * Guided setup: run "perl setup.pl". It looks for logs already on the
@@ -6,8 +6,8 @@ pisg (1.0.a) - Mon Sep, 21st 2026
       questions, writes pisg.cfg, makes the first page, offers to run pisg on a
       questions, writes pisg.cfg, makes the first page, offers to run pisg on a
       schedule (cron, or a Windows scheduled task) and lists free places to
       schedule (cron, or a Windows scheduled task) and lists free places to
       host the pages. It never overwrites an existing pisg.cfg.
       host the pages. It never overwrites an existing pisg.cfg.
-    * New look: five modern themes (modern, midnight, amoled, terminal,
-      canada), generated from one stylesheet by layout/build-themes.py. The
+    * New look: four modern themes (modern, midnight, amoled, terminal),
+      generated from one stylesheet by layout/build-themes.py. The
       old themes are unchanged. Ink on paper with colour reserved for data:
       old themes are unchanged. Ink on paper with colour reserved for data:
       four time-of-day colours checked for colour-blind safety in light and
       four time-of-day colours checked for colour-blind safety in light and
       dark, nicks and figures in monospace, sections separated by a rule
       dark, nicks and figures in monospace, sections separated by a rule

+ 6 - 6
docs/RELEASE-NOTES-1.0.md

@@ -1,6 +1,6 @@
-# pisg 1.0: what changed since 0.80-preview2
+# pisg 1.0a: what changed since 0.80-preview2
 
 
-pisg 1.0 keeps everything 0.80-preview2 does: the same parsers, the same statistics, the same
+pisg 1.0a keeps everything 0.80-preview2 does: the same parsers, the same statistics, the same
 `pisg.cfg`. On top of that it has a new look, a set of new sections, a way to run several channels
 `pisg.cfg`. On top of that it has a new look, a set of new sections, a way to run several channels
 from one folder, safer output, a guided setup, and tools to keep the statistics tidy without editing files
 from one folder, safer output, a guided setup, and tools to keep the statistics tidy without editing files
 by hand.
 by hand.
@@ -13,8 +13,8 @@ sections, which are on by default (see [Upgrading](#upgrading)).
 
 
 - **A guided setup**: `perl setup.pl` finds your logs, writes the configuration, makes the first page and
 - **A guided setup**: `perl setup.pl` finds your logs, writes the configuration, makes the first page and
   explains how to run it on a schedule and host it for free. Made for people new to IRC tools.
   explains how to run it on a schedule and host it for free. Made for people new to IRC tools.
-- **Five modern themes**, light and dark, that follow the reader's system setting: `modern`, `midnight`,
-  `amoled`, `terminal` and `canada`.
+- **Four modern themes**, light and dark: `modern`, `midnight`, `amoled` and `terminal`.
+  `modern` follows the reader's system setting.
 - **Seven new sections**: an overview, an interactive *who talks to whom* map, closest pairs, social roles,
 - **Seven new sections**: an overview, an interactive *who talks to whom* map, closest pairs, social roles,
   time personalities, *who carries the channel* and signature words.
   time personalities, *who carries the channel* and signature words.
 - **Section navigation**: a menu down the left side on wide screens, a slim bar on phones.
 - **Section navigation**: a menu down the left side on wide screens, a slim bar on phones.
@@ -103,7 +103,7 @@ the statistics of the statistics:
   the time-of-day colours, a small chart of the last 30 days, and a **View stats** button;
   the time-of-day colours, a small chart of the last 30 days, and a **View stats** button;
 - the five busiest people in each channel.
 - the five busiest people in each channel.
 
 
-Old links such as `index.html#canada` still jump to that channel. Names from the JSON are always shown as
+Old links such as `index.html#mychannel` still jump to that channel. Names from the JSON are always shown as
 plain text, and only plain relative `.html` paths are accepted as links.
 plain text, and only plain relative `.html` paths are accepted as links.
 
 
 ## New options
 ## New options
@@ -185,7 +185,7 @@ These are optional and live in `scripts/`.
 2. **The new sections are on by default**, in every colour scheme (the old ones show them in a plain
 2. **The new sections are on by default**, in every colour scheme (the old ones show them in a plain
    style). If you want the old page exactly, set `ShowOverview`, `ShowRelations`, `ShowTimePersonalities`,
    style). If you want the old page exactly, set `ShowOverview`, `ShowRelations`, `ShowTimePersonalities`,
    `ShowConcentration`, `ShowSignatureWords` and `ShowNavBar` to `0`.
    `ShowConcentration`, `ShowSignatureWords` and `ShowNavBar` to `0`.
-3. To use the new look, add `<set ColorScheme="modern">` (or `midnight`, `amoled`, `terminal`, `canada`).
+3. To use the new look, add `<set ColorScheme="modern">` (or `midnight`, `amoled`, `terminal`).
 4. `pisg` now returns exit status 1 on failure. If a script or cron job treated any exit as success,
 4. `pisg` now returns exit status 1 on failure. If a script or cron job treated any exit as success,
    check what it does with the error.
    check what it does with the error.
 5. For the landing page, copy `site/index.html` into your output folder and run pisg once so
 5. For the landing page, copy `site/index.html` into your output folder and run pisg once so

+ 1 - 1
docs/gen-example-config.py

@@ -47,7 +47,7 @@ EXTRA = {
 # ---- choices for the example ---------------------------------------------------------
 # ---- choices for the example ---------------------------------------------------------
 # Recommended values that differ from pisg's stock defaults, with the reason.
 # Recommended values that differ from pisg's stock defaults, with the reason.
 RECOMMENDED = {
 RECOMMENDED = {
-    "ColorScheme": ("modern", "modern, light/dark theme; try midnight, amoled, terminal, canada, or default"),
+    "ColorScheme": ("modern", "modern, light/dark theme; try midnight, amoled, terminal, or default"),
     "Charset": ("utf-8", "UTF-8 shows accents, emoji and non-Latin scripts correctly"),
     "Charset": ("utf-8", "UTF-8 shows accents, emoji and non-Latin scripts correctly"),
     "NickTracking": ("1", "follow nick changes so Alice, Alice_ and Alice- count as one person"),
     "NickTracking": ("1", "follow nick changes so Alice, Alice_ and Alice- count as one person"),
     "DailyActivity": ("14", "show the last 14 days as a bar chart"),
     "DailyActivity": ("14", "show the last 14 days as a bar chart"),

+ 1 - 1
docs/pisg-doc.xml

@@ -5,7 +5,7 @@
 
 
 <book id="pisg-documentation">
 <book id="pisg-documentation">
   <bookinfo>
   <bookinfo>
-    <title>pisg 1.0.a documentation</title>
+    <title>pisg 1.0a documentation</title>
     <subtitle>How to install and configure pisg</subtitle>
     <subtitle>How to install and configure pisg</subtitle>
   </bookinfo>
   </bookinfo>
   <toc></toc>
   <toc></toc>

+ 0 - 5
layout/build-themes.py

@@ -53,11 +53,6 @@ THEMES = {
                                 line="#17301c", line2="#24492b", hover="#0f1a12", mark="#3ddc84",
                                 line="#17301c", line2="#24492b", hover="#0f1a12", mark="#3ddc84",
                                 male="#7fd6ff", female="#ff9ad0"),
                                 male="#7fd6ff", female="#ff9ad0"),
                      sans=MONO, mono=MONO),
                      sans=MONO, mono=MONO),
-    # Red and white, for #canada.
-    "canada": dict(desc="Warm paper with a maple-red series colour; dark variant follows the visitor's setting",
-                   scheme="light dark", sans=SANS, mono=MONO,
-                   light=dict(LIGHT, bg="#faf6f5", line="#e8dcdb", line2="#d3c2c1", hover="#f3eae9", mark="#c8102e"),
-                   dark=dict(DARK, bg="#150d0e", surface="#1e1416", line="#33232a", line2="#4a3239", hover="#231719", mark="#ff5a6d")),
 }
 }
 
 
 KEYS = ["bg", "surface", "fg", "muted", "line", "line2", "hover", "mark",
 KEYS = ["bg", "surface", "fg", "muted", "line", "line2", "hover", "mark",

+ 0 - 266
layout/canada.css

@@ -1,266 +0,0 @@
-/* pisg theme: canada - Warm paper with a maple-red series colour; dark variant follows the visitor's setting.
-   Generated by layout/build-themes.py, edit the palette there. */
-:root {
-  color-scheme: light dark;
-  --bg: #faf6f5;
-  --surface: #ffffff;
-  --fg: #171b21;
-  --muted: #59626d;
-  --line: #e8dcdb;
-  --line2: #d3c2c1;
-  --hover: #f3eae9;
-  --mark: #c8102e;
-  --t0: #4a3aa7;
-  --t1: #eda100;
-  --t2: #1baf7a;
-  --t3: #eb6834;
-  --male: #2a5fb0;
-  --female: #b03a72;
-  --shadow: 0 18px 32px -14px rgba(20,24,30,.28);
-}
-@media (prefers-color-scheme: dark) {
-  :root {
-    --bg: #150d0e;
-    --surface: #1e1416;
-    --fg: #e8ebef;
-    --muted: #98a2ae;
-    --line: #33232a;
-    --line2: #4a3239;
-    --hover: #231719;
-    --mark: #ff5a6d;
-    --t0: #9085e9;
-    --t1: #c98500;
-    --t2: #199e70;
-    --t3: #d95926;
-    --male: #7aa7ea;
-    --female: #e58ab5;
-    --shadow: 0 18px 32px -14px rgba(0,0,0,.6);
-  }
-}
-
-/* pisg output is table markup, so these rules restyle the existing classes (headtext, hicell,
-   tdtop, rankc ...). The generator wraps each section in <div class="card" id="...">. */
-
-html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
-
-body {
-  margin: 0;
-  padding: 32px 24px 96px;
-  background: var(--bg);
-  color: var(--fg);
-  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
-  font-size: 15px;
-  line-height: 1.55;
-}
-body > div { max-width: 1040px; margin: 0 auto; text-align: left; }   /* pisg centres it with align=center */
-
-/* Fixed 925/929px table widths are attributes, so plain CSS overrides them. */
-table { border-collapse: separate; border-spacing: 0; max-width: 100%; }
-table[width] { width: 100%; }
-table[width="520"] { width: auto; margin: 10px 0 0; }
-td { color: var(--fg); font-family: inherit; font-size: 14px; text-align: left; padding: 9px 10px; vertical-align: middle; overflow-wrap: anywhere; }   /* long URLs and nicks wrap instead of forcing a scrollbar */
-
-a, a:link, a:visited { color: inherit; font-weight: 600; text-decoration: underline; text-decoration-color: var(--line2); text-underline-offset: 3px; }
-a:hover { text-decoration-color: currentColor; }
-a:focus-visible, summary:focus-visible, button:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
-a.background, a.background:link, a.background:visited { color: var(--muted); font-weight: 500; }
-
-/* ---- Masthead: reads like an IRC header, "#channel @ network" ---- */
-.title, #pagetitle1 {
-  margin: 4px 0 8px;
-  font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
-  font-size: clamp(24px, 4.6vw, 40px);
-  line-height: 1.15;
-  font-weight: 700;
-  letter-spacing: -0.035em;
-  color: var(--fg);
-  overflow-wrap: anywhere;
-}
-.subtitle { margin: 0 0 18px; color: var(--muted); font-size: 14px; }
-.subtitle b { color: var(--fg); font-weight: 600; }
-
-/* ---- Sections: a rule and space, no boxes ---- */
-.card { margin: 56px 0 0; padding: 20px 0 0; border-top: 1px solid var(--line2); overflow-x: auto; text-align: left; scroll-margin-top: 64px; }
-.card > br { display: none; }
-.pisg-nav + .card { margin-top: 28px; border-top: 0; padding-top: 0; }
-#overview .headlinebg { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }   /* the sentence below is its headline; the menu still links here */
-.card > table:first-of-type { margin-bottom: 8px; }
-.headlinebg { background: none; padding: 0; }
-.headtext { margin: 0; padding: 0; border: 0; background: none; color: var(--fg);
-            font-size: 20px; line-height: 1.25; font-weight: 650; letter-spacing: -0.01em; text-align: left; }
-.intro { margin: 2px 0 16px; max-width: 68ch; color: var(--muted); }
-
-/* ---- Wide screens: a menu down the left, the page fills the rest ---- */
-body { container-type: inline-size; }
-.nav-side { display: none; }
-@media (min-width: 1000px) {
-  body { padding-left: 272px; padding-right: 28px; }
-  body > div { max-width: 1720px; }
-  .pisg-nav { box-sizing: border-box; position: fixed; top: 0; left: 0; bottom: 0; width: 232px; margin: 0; padding: 26px 12px 24px 24px;
-              border: 0; border-right: 1px solid var(--line2); background: var(--bg); overflow-y: auto; z-index: 30; }
-  .nav-menu { display: none; }
-  .nav-side { display: block; }
-  .nav-brand, .nav-brand:link, .nav-brand:visited { display: block; margin: 0 0 18px; font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 18px; font-weight: 700;
-              letter-spacing: -0.02em; text-decoration: none; overflow-wrap: anywhere; }
-  .nav-side-list { margin: 0; padding: 0; list-style: none; }
-  .nav-side-list a, .nav-side-list a:link, .nav-side-list a:visited { display: block; margin-left: -10px; padding: 6px 10px; border-left: 2px solid transparent;
-              color: var(--muted); font-size: 14px; font-weight: 500; text-decoration: none; }
-  .nav-side-list a:hover { color: var(--fg); background: var(--hover); }
-  .nav-side-list a.active { color: var(--fg); font-weight: 650; border-left-color: var(--mark); }
-  .card { scroll-margin-top: 24px; }
-  .card td:not(.headtext):not(.headlinebg) { padding-left: 8px; padding-right: 8px; }   /* the 10-column nick table just fits beside the menu */
-  .pisg-nav + .card { margin-top: 20px; }
-}
-/* Two short sections share a row when the page is wide enough (measured on the page, so it also holds inside a frame). */
-@container (min-width: 1080px) {
-  body > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; grid-auto-flow: dense; }
-  body > div > * { grid-column: 1 / -1; }
-  body > div > .card.half { grid-column: auto; }
-}
-
-/* Way back to the landing page (option HomeLink) */
-.homebar { margin: 0 0 14px; text-align: left; }
-.homebtn, .homebtn:link, .homebtn:visited { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--line2); border-radius: 6px;
-  background: var(--surface); color: var(--fg); font-size: 13px; font-weight: 600; line-height: 1.3; text-decoration: none; }
-.homebtn:hover { background: var(--hover); border-color: var(--fg); }
-
-/* Column titles */
-.tdtop { background: none; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .08em;
-         text-transform: uppercase; border-bottom: 1px solid var(--line2); padding: 8px 10px; }
-.tdtop { white-space: nowrap; }   /* column titles stay on one line; the table scrolls instead */
-.tdtop b { font-weight: 600; }
-
-/* Rows: one hairline each */
-.hicell { background: none; border-bottom: 1px solid var(--line); border-radius: 0; padding: 11px 10px; }
-.hicell10 { background: none; font-size: 12px; border-bottom: 1px solid var(--line); }
-tr:last-child > .hicell { border-bottom: 0; }
-/* pisg writes an inline colour gradient on the top-nicks rows (HiCell/HiCell2); the theme owns colour. */
-td[style*="background-color"] { background: transparent !important; border-bottom: 1px solid var(--line); }
-tr:hover > td[style*="background-color"], tr:hover > .rankc, tr:hover > .hirankc { background: var(--hover) !important; }
-
-.rankc, .hirankc, .rankc10 { background: transparent; color: var(--muted); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px;
-                              font-weight: 500; text-align: center; border-bottom: 1px solid var(--line); }
-.hirankc { color: var(--fg); font-weight: 700; }
-.rankc, .hirankc, .rankc10 { white-space: nowrap; }
-.rankc10 { text-align: left; }
-/* nicks are set in monospace, as in an IRC client */
-.rankc + td, .hirankc + td { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-weight: 600; }
-.small, .asmall { color: var(--muted); font-family: inherit; font-size: 12px; }
-.asmall { text-align: center; }
-
-/* ---- Bar charts (marks: thin, 4px rounded data end, 2px gap between segments) ---- */
-table:not([width]) { width: 100%; table-layout: fixed; margin: 6px 0; }
-td.asmall { padding: 0 2px; line-height: 1.3; vertical-align: bottom; }   /* bars stand on one baseline */
-table:not([width]) tr:first-child > td.asmall { border-bottom: 1px solid var(--line2); }
-td.asmall br { display: none; }
-td.rankc10center, td.hirankc10center { background: none; border: 0; color: var(--muted); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
-                                         font-size: 11px; text-align: center; padding: 6px 0 0; min-width: 0; letter-spacing: -0.02em; }   /* no side padding: 24 narrow columns must not poke out of the table */
-td.hirankc10center { color: var(--fg); font-weight: 700; }
-/* a number over every bar is noise: the peak keeps its label, the rest are in the tooltip */
-td.asmall .v { display: none; }
-td.asmall .v.pk { display: block; color: var(--fg); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-weight: 600; }
-.rankc10center.skip { visibility: hidden; }
-
-img[id$="-v"] { display: block; width: min(64%, 22px); margin: 0 auto; border-radius: 0; }
-img[id$="-v"]:first-of-type { border-radius: 4px 4px 0 0; }
-img[id$="-v"]:not(:first-of-type) { margin-top: 2px; }
-img[id$="-v"]:only-of-type { border-radius: 4px 4px 0 0; }
-img[id$="-h"] { height: 8px; vertical-align: middle; margin: 0 1px 0 0; border-radius: 0; }
-td[nowrap] img[id$="-h"] { background: var(--mark); margin-right: 0; }   /* lines: one value, one colour; the "when" column keeps the four */
-img[id$="-h"]:first-of-type { border-radius: 4px 0 0 4px; }
-img[id$="-h"]:last-of-type { margin-right: 0; border-radius: 0 4px 4px 0; }
-img[id$="-h"]:only-of-type { border-radius: 4px; }
-td.asmall img[id$="-h"] { margin-right: 6px; }
-table[width="520"] img[id$="-h"] { width: 14px; height: 8px; border-radius: 2px; }   /* legend: a colour key, not a bar */
-table[width="520"] td.asmall { text-align: left; padding: 0 14px 0 0; white-space: nowrap; }
-/* the colour key wraps instead of forcing a sideways scrollbar on a narrow screen */
-table[width="520"] { display: flex; flex-wrap: wrap; gap: 4px 0; width: auto; max-width: 100%; }
-table[width="520"] tbody, table[width="520"] tr { display: contents; }
-img[id="blue-h"],   img[id="blue-v"]   { background: var(--t0); }
-img[id="green-h"],  img[id="green-v"]  { background: var(--t1); }
-img[id="yellow-h"], img[id="yellow-v"] { background: var(--t2); }
-img[id="red-h"],    img[id="red-v"]    { background: var(--t3); }
-
-td[rowspan] img { width: 36px; height: 36px; object-fit: cover; border-radius: 50%; display: block; margin: 0 auto; }
-td[rowspan] img.defpic { width: 26px; height: 26px; opacity: .3; }   /* the shared default picture: a quiet placeholder */
-
-/* ranked tables: one left edge, and no stray rule under the last row */
-tr:first-child > td:not([class]):first-child { border-bottom: 1px solid var(--line2); }
-tr:last-child > .rankc, tr:last-child > .hirankc, tr:last-child > td[style*="background-color"] { border-bottom: 0; }
-.rankc, .hirankc { width: 44px; }
-td[style*="background-color"] { white-space: nowrap; }          /* "3 days ago" stays on one line ... */
-td[style*="background-color"].quote { white-space: normal; }    /* ... only the quote may wrap */
-.male, .male a { color: var(--male); }
-.female, .female a { color: var(--female); }
-.bot, .bot a { color: var(--muted); font-style: italic; }
-
-/* single-series bars */
-.bar { display: inline-block; vertical-align: middle; width: 140px; max-width: 100%; height: 8px; border-radius: 4px; background: var(--line); overflow: hidden; }
-.bar span { display: block; height: 100%; border-radius: 4px; background: var(--mark); opacity: 1; }
-.sigword { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-weight: 600; }
-
-/* "These didn't make it to the top:" is a bare <b><i> under the table; give it the same voice as a column title */
-.card > b { display: block; margin: 26px 0 4px; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
-.card > b > i { font-style: normal; }
-
-#totallines { margin-top: 56px; padding-top: 14px; border-top: 1px solid var(--line2); color: var(--muted); font-size: 12px; }
-#footer { margin-top: 2px; color: var(--muted); }
-#footer .small { font-size: 12px; }
-::selection { background: var(--fg); color: var(--bg); }
-
-/* ---- Section menu: one slim bar, one panel ---- */
-.pisg-nav { background: var(--bg); border-bottom-color: var(--line2); margin-bottom: 0; }
-.nav-current { color: var(--fg); font-weight: 650; }
-.nav-toggle { color: var(--muted); opacity: 1; }
-.nav-list { background: var(--surface); border-color: var(--line2); box-shadow: var(--shadow); }
-.nav-list a, .nav-list a:link, .nav-list a:visited { color: var(--fg); font-weight: 500; text-decoration: none; }
-.nav-list a:hover { background: var(--hover); }
-.nav-list a.active { font-weight: 700; }
-
-/* ---- Overview: a sentence and a list of facts, not a wall of tiles ---- */
-.hero { margin: 2px 0 22px; font-size: clamp(20px, 2.6vw, 26px); line-height: 1.3; font-weight: 650; letter-spacing: -0.02em; text-wrap: balance; }
-.hero b { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-weight: 700; letter-spacing: -0.05em; }
-.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 56px; margin: 0; }
-.fact { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); }
-.fact dt { color: var(--muted); }
-.fact dd { margin: 0; text-align: right; font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-weight: 600; font-variant-numeric: tabular-nums; }
-.fact dd small { display: block; color: var(--muted); font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 12px; font-weight: 400; }
-
-/* ---- Roles, personalities: columns split by a rule, no boxes ---- */
-.cardgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 28px 32px; margin: 8px 0 0; }
-.minicard { display: flex; flex-direction: column; gap: 3px; padding: 12px 0 0; border: 0; border-top: 1px solid var(--line2); border-radius: 0; background: none; text-align: left; }
-.mc-title { color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
-.mc-name { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 19px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
-.mc-desc { color: var(--muted); font-size: 13px; }
-.mc-value { margin-top: 6px; font-size: 13px; font-weight: 600; }
-.mc-list { margin: 8px 0 0; padding: 0; list-style: none; }
-.mc-list li { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-top: 1px solid var(--line); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 13px; }
-.mc-list span { color: var(--muted); }
-.minicard.t0 { border-top: 3px solid var(--t0); } .minicard.t1 { border-top: 3px solid var(--t1); }
-.minicard.t2 { border-top: 3px solid var(--t2); } .minicard.t3 { border-top: 3px solid var(--t3); }
-
-/* ---- Relation map: the one lifted surface ---- */
-.relmap-canvas svg { box-sizing: border-box; background: var(--surface); border: 1px solid var(--line2); border-radius: 8px; }   /* width:100% must include the border */
-.relmap-info { background: none; border: 0; border-top: 1px solid var(--line2); border-radius: 0; padding: 12px 0 0; }
-.relmap-legend { color: var(--muted); }
-.ri-title { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; color: var(--fg); }
-.ri-sub, .ri-num { color: var(--muted); opacity: 1; }
-.ri-list li { border-top-color: var(--line); }
-.ri-link { color: var(--fg); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; text-decoration-color: var(--line2); }
-.lg0 i, .rm-node.t0 circle { background: var(--t0); fill: var(--t0); } .lg1 i, .rm-node.t1 circle { background: var(--t1); fill: var(--t1); }
-.lg2 i, .rm-node.t2 circle { background: var(--t2); fill: var(--t2); } .lg3 i, .rm-node.t3 circle { background: var(--t3); fill: var(--t3); }
-.rm-line { stroke: var(--muted); }
-.rm-node circle { stroke: var(--surface); }
-.rm-node text { fill: var(--fg); stroke: var(--surface); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; }
-.rm-edge.sel .rm-line { stroke: var(--fg); }
-.rm-node:focus-visible circle, .rm-node.sel circle { stroke: var(--fg); }
-
-@media (max-width: 720px) {
-  body { padding: 20px 16px 72px; font-size: 14px; }
-  .hr.rankc10center:nth-child(even) { visibility: hidden; }     /* every second hour label on a phone */
-  td { padding: 7px 6px; font-size: 13px; }
-  .bar { width: 64px; }
-  .card { margin-top: 44px; }
-  .facts { grid-template-columns: 1fr; }
-  td[rowspan] img { width: 30px; height: 30px; }
-}

+ 1 - 1
modules/Pisg.pm

@@ -229,7 +229,7 @@ sub get_default_config_settings
         modules_dir => '',         # set in get_cmdline_options
         modules_dir => '',         # set in get_cmdline_options
         cchannels => '',           # set in get_cmdline_options
         cchannels => '',           # set in get_cmdline_options
 
 
-        version => "1.0.a"
+        version => "1.0a"
     };
     };
 
 
     # This enables us to use the search_path in other modules
     # This enables us to use the search_path in other modules

+ 2 - 2
pisg.cfg

@@ -3,7 +3,7 @@
 # docs/html/index.html for a HTML version.
 # docs/html/index.html for a HTML version.
 
 
 <set maintainer ="Your nickname">
 <set maintainer ="Your nickname">
-<user nick="Sebastien" alias="Sebastien Sebastien-" sex="m" pic="seb.jpg">
+<user nick="Seb" alias="Seb- Seb_" pic="https://r2.fivemanage.com/X8I0LGoLdHY2Wx9DdTrvx/Pics/me.png" sex="m" link="https://dooubletap.github.io/">
 <set FoulWords="ass fuck bitch shit fucker cunt cock dick penis">
 <set FoulWords="ass fuck bitch shit fucker cunt cock dick penis">
 <set ViolentWords="slaps beats kick hits smacks stabs">
 <set ViolentWords="slaps beats kick hits smacks stabs">
 <set DailyActivity="31">
 <set DailyActivity="31">
@@ -41,7 +41,7 @@
  LogDir="/home/user/eggdrop/logs/"
  LogDir="/home/user/eggdrop/logs/"
  LogPrefix="%23pisg."
  LogPrefix="%23pisg."
  Format="eggdrop"
  Format="eggdrop"
- Network="freenode"
+ Network="Undernet"
  OutputFile="/var/www/html/eggy.html"
  OutputFile="/var/www/html/eggy.html"
 </channel>
 </channel>
  
  

+ 1 - 1
pisg.cfg.example

@@ -22,7 +22,7 @@
 # ---- General options -------------------------------------------------------
 # ---- General options -------------------------------------------------------
 
 
 # use a different color scheme for stats page - recommended: modern, light/dark theme;
 # use a different color scheme for stats page - recommended: modern, light/dark theme;
-# try midnight, amoled, terminal, canada, or default
+# try midnight, amoled, terminal, or default
 <set ColorScheme="modern">
 <set ColorScheme="modern">
 
 
 # alternate stylesheets for stats page - extra stylesheets the visitor can switch to
 # alternate stylesheets for stats page - extra stylesheets the visitor can switch to

+ 11 - 11
scripts/Cleaner Index/README.txt

@@ -1,11 +1,11 @@
-Just add .htaccess dark-style.css index.php and recache.php to your /www/ folder, to make the listing of files nicer. 
-
-chmod both .php files
-
-recache.php to rwxr----- (740)
-index.php to rwxr--r-- (744)
-
-Then refresh :)
-
-
-Thanks to OverCoder @ freenode for this addition.
+Just add .htaccess dark-style.css index.php and recache.php to your /www/ folder, to make the listing of files nicer. 
+
+chmod both .php files
+
+recache.php to rwxr----- (740)
+index.php to rwxr--r-- (744)
+
+Then refresh :)
+
+
+Thanks to OverCoder @ Undernet for this addition.

+ 67 - 67
scripts/Cleaner Index/index.php

@@ -1,67 +1,67 @@
-<?php
-
-$cache = file_get_contents("index-cache.txt") or die("Cache file not found!");
-$json = json_decode($cache, true);
-
-?>
-<!DOCTYPE html>
-<html>
-<head>
-	<title>Stats generated by #pisg @ freenode</title>
-	<link rel="stylesheet" type="text/css" href="dark-style.css">
-	<style type="text/css">
-		table {
-			width: 480px;
-			margin: 0 auto;
-		}
-
-		@media (max-width: 640px) {
-			table {
-				width: 100%;
-			}
-		}
-
-		body {
-			text-align: center;
-		}
-
-		footer {
-			position: absolute;
-			right: 0;
-			bottom: 0;
-			left: 0;
-			padding: 1rem;
-			text-align: center;
-		}
-
-		h6 {
-			margin: 0;
-		}
-	</style>
-</head>
-<body>
-<h1>Stats generated by #pisg @ freenode</h1>
-<h4>Last updated: <?php echo $json["refresh_date"] ?></h4>
-<table>
-<tr>
-	<th>Channel</th>
-	<th>Users</th>
-</tr>
-<?php
-
-foreach ($json as $channel => $data) {
-	if ($channel === "refresh_date")
-		continue;
-        echo '<tr onclick="document.location = \'' . $data["file"] . '\'">';
-        echo '<td>' . $channel . '</td>';
-        echo '<td>' . $data["users"] . '</td>';
-        echo '</tr>';
-}
-
-?>
-</table>
-<footer>
-<h6>pisg!stats@pisg/stats/bot @ freenode | Generated by <a href="https://github.com/PISG/pisg">PISG</a> | All rights reserved | This magic is created by OverCoder</h6>
-</footer>
-</body>
-</html>
+<?php
+
+$cache = file_get_contents("index-cache.txt") or die("Cache file not found!");
+$json = json_decode($cache, true);
+
+?>
+<!DOCTYPE html>
+<html>
+<head>
+	<title>Stats generated by #pisg @ Undernet</title>
+	<link rel="stylesheet" type="text/css" href="dark-style.css">
+	<style type="text/css">
+		table {
+			width: 480px;
+			margin: 0 auto;
+		}
+
+		@media (max-width: 640px) {
+			table {
+				width: 100%;
+			}
+		}
+
+		body {
+			text-align: center;
+		}
+
+		footer {
+			position: absolute;
+			right: 0;
+			bottom: 0;
+			left: 0;
+			padding: 1rem;
+			text-align: center;
+		}
+
+		h6 {
+			margin: 0;
+		}
+	</style>
+</head>
+<body>
+<h1>Stats generated by #pisg @ Undernet</h1>
+<h4>Last updated: <?php echo $json["refresh_date"] ?></h4>
+<table>
+<tr>
+	<th>Channel</th>
+	<th>Users</th>
+</tr>
+<?php
+
+foreach ($json as $channel => $data) {
+	if ($channel === "refresh_date")
+		continue;
+        echo '<tr onclick="document.location = \'' . $data["file"] . '\'">';
+        echo '<td>' . $channel . '</td>';
+        echo '<td>' . $data["users"] . '</td>';
+        echo '</tr>';
+}
+
+?>
+</table>
+<footer>
+<h6>pisg!stats@pisg/stats/bot @ Undernet | Generated by <a href="https://github.com/PISG/pisg">PISG</a> | All rights reserved | This magic is created by OverCoder</h6>
+</footer>
+</body>
+</html>

+ 2 - 2
scripts/eggdrop-pisg.tcl

@@ -1,7 +1,7 @@
 # eggdrop-pisg.tcl - pisg for eggdrop: !pisgstats, and profiles people edit themselves.
 # eggdrop-pisg.tcl - pisg for eggdrop: !pisgstats, and profiles people edit themselves.
 #
 #
 # Based on pisg.tcl by HM2K / Arganan (the !pisgstats command). The profile commands are new
 # Based on pisg.tcl by HM2K / Arganan (the !pisgstats command). The profile commands are new
-# in pisg 1.0.a. People set their own sex, picture, link and merge their nicks in chat; the
+# in pisg 1.0a. People set their own sex, picture, link and merge their nicks in chat; the
 # bot writes them to users.cfg, which pisg reads through  <include="/path/to/users.cfg">  on
 # bot writes them to users.cfg, which pisg reads through  <include="/path/to/users.cfg">  on
 # its next run. Nothing else is needed: no web page, no database.
 # its next run. Nothing else is needed: no web page, no database.
 #
 #
@@ -21,7 +21,7 @@
 # only claim the nick you are using right now, so nobody can take somebody else's name.
 # only claim the nick you are using right now, so nobody can take somebody else's name.
 
 
 namespace eval pisg {
 namespace eval pisg {
-    variable version   "1.0.a"
+    variable version   "1.0a"
 
 
     # ---- settings -------------------------------------------------------------------------
     # ---- settings -------------------------------------------------------------------------
     # Change these to match your setup, or keep your own values in pisg.local.tcl next to this file
     # Change these to match your setup, or keep your own values in pisg.local.tcl next to this file

+ 1 - 1
scripts/pisg-addchan.tcl

@@ -1,5 +1,5 @@
 # Original Author: paultwang - 2010-03-17
 # Original Author: paultwang - 2010-03-17
-# fixed and tweaked: Sebastien 2017-10-25
+# fixed and tweaked: Seb 2017-10-25
 
 
 # This is where pisg.cfg is stored
 # This is where pisg.cfg is stored
 set pp_confname "/home/jedi/pisg/pisg-0.73/pisg.cfg"
 set pp_confname "/home/jedi/pisg/pisg-0.73/pisg.cfg"