No description
Find a file
Dpeta bc4af153af
Fix Pylint errors and further disable console, as it is unmaintained.
Remove osVer function from ostools

Remove isOSXLeopard

only use chum.handle

Fix bad except error

Comment out console related function

fix fix* except order

fallback if i is not defined for log

fix console

Explicitly define nick() to appease pylint

Comment out connect_cb, it's unused for pchum rn

e is unsubscribable

Explicitly define 'simple' irc commands

fix exceptions part 2

fix send

Explicitly define lastmsg as None on init

iterate through copy or urls

Comment out console for not as it's unmaintained
2023-01-14 22:50:11 +01:00
.github/workflows Update workflow to use requirements.txt 2022-12-10 04:24:08 +01:00
docs Deleted accidental backup that got pushed 2021-03-29 14:06:30 +00:00
oyoyo Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
pnc Partial build process rewrite. 2022-10-29 21:49:35 +02:00
quirks Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
smilies incorrect sRGB profile fix attempt 2021-03-23 23:23:34 +01:00
themes further pyqt6 changes, version, linux/macos color fix 2022-06-29 01:50:08 +02:00
.gitignore Added example gradient function 2022-06-18 02:25:51 +02:00
CHANGELOG.md Update changelog (v2.5.3) 2022-12-27 03:06:59 +01:00
console.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
convo.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
dataobjs.py Reformat with black 2022-11-17 08:44:23 +01:00
generic.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
irc.py Don't try to get services mood via GETMOOD 2022-11-17 10:31:04 +01:00
LICENSE Reimplemented console.py & a lot of README stuff! 2021-03-25 14:09:43 +01:00
logviewer.py Minor linting 2022-11-17 08:42:10 +01:00
luaquirks.py getopt --> argparse, redid logging, code cleanup 2022-09-06 13:26:14 +02:00
memos.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
menus.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
mispeller.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
mood.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
nickservmsgs.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
ostools.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
parsetools.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
PCskins.png pyinstaller ready 2021-03-25 09:09:58 +01:00
pesterchum __init__ & wrapper scripts for wheel 2022-03-20 04:37:04 +01:00
pesterchum.ico pyinstaller ready 2021-03-25 09:09:58 +01:00
Pesterchum.png pyinstaller ready 2021-03-25 09:09:58 +01:00
pesterchum.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
profile.py Fix Pylint errors and further disable console, as it is unmaintained. 2023-01-14 22:50:11 +01:00
pyinst.py Partial build process rewrite. 2022-10-29 21:49:35 +02:00
pyquirks.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
pytwmn.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
quirks.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
randomer.py Reformat codebase (#97) 2022-10-07 22:51:40 +02:00
README.md Add requirements.txt with pip freeze to pin PyQt6-Qt6 to 6.4.0 2022-12-10 04:20:52 +01:00
requirements-qt5.txt Add requirements.txt with pip freeze to pin PyQt6-Qt6 to 6.4.0 2022-12-10 04:20:52 +01:00
requirements.txt Add requirements.txt with pip freeze to pin PyQt6-Qt6 to 6.4.0 2022-12-10 04:20:52 +01:00
setup.py Add command-line options to pyinstaller.py for automated building, finish pyqt5 multimedia sound, fix incorrect arguments in pyinstaller.py+setup.py 2022-10-08 14:30:56 +02:00
start.sh Create start.sh 2021-08-24 18:44:26 +02:00
toast.py Add command-line options to pyinstaller.py for automated building, finish pyqt5 multimedia sound, fix incorrect arguments in pyinstaller.py+setup.py 2022-10-08 14:30:56 +02:00
TODO.md Validate certificates when using SSL/TLS 2022-09-02 05:34:37 +02:00
trayicon32.icns setup.py bdist_mac 2021-03-26 15:43:00 +01:00
version.py Set version to v2.5.3 2022-12-22 17:25:55 +01:00

PESTERCHUM GitHub all releases Community Discord Support Discord
GitHub commit activity Lines of code Code style: black

PESTERCHUM

Pesterchum is an instant messaging client copying the look and feel of clients from Andrew Hussie's webcomic Homestuck.

Contributions in any form are very welcome!! Including for extra themes, bug fixes, features, etc. Just hmu in the support server or make a pull request :3

There's a Russian translation of this repository available, it's somewhat outdated though.

This repository is a maintained version of ghostDunk's Pesterchum, originally forked from pesterchum-karxi + Hydrothermal's fix of the "YOUR NICK IS BEING CHANGED TO X" msgbox-spam exploit.

MAIN CHANGES

INSTALLATION

  1. Download the appropriate release for your platform and architecture from releases.

  2. Extract the zip file.

  3. Run the executable:

    • For Windows, run pesterchum.exe, this may show up as just "pesterchum" if you have file extensions set to hidden.

      • Newer releases won't run on Windows XP/Vista since Python stopped supporting it.
    • For Linux, run Pesterchum.

      • Linux releases are not backwards compatible with glibc versions older than the one it was build against. The glibc version the release was build against will be included in the filename, like: PesterchumAlt.-2.2-linux64-glibc2.27.tar.gz. This really shouldn't be an issue unless your distro is absolutely ancient, if it is, run from source.
    • For macOS, run the Pesterchum.app app file, this may show up as just "Pesterchum" if you have file extensions set to hidden. Alternatively, run the binary directly from Pesterchum\Pesterchum.app\Contents\MacOS\Pesterchum.

      • macOS releases require at least 10.14 (Mojave) or older and a 64 bit processor.
      • My releases are unsigned, so you'll probably have to click "Open Anyway".

DOCUMENTATION

The old documentation can be found in docs, these have aged pretty well:

I've been adding some info to the wiki, the available pages as of me updating this readme are:

Some useful off-repo guides:

The old READMEs are also preserved in the docs folder:

RUNNING FROM SOURCE

Pesterchum is a Python script. This means that as long as you have Python installed you can run it without requiring a build/executable, this is useful if there's no compatible build for your system.

DEPENDENCIES

  • Python 3
    • Ideally 3.8 or later, though older versions may still work, I don't test them.
  • PyQt6 (prefered) or PyQt5 (legacy)
  • (Optional) pygame can provide an alternative audio backend for certain systems.
    • Useful for Linux systems that don't meet the Qt6 requirements, as Qt5 Multimedia has a GStreamer dependency.
  • (Optional) certifi can provide alternative root certificates for TLS certificate validation.
    • Useful for MacOS, as Python doesn't use the system-provided certificates because of MacOS' outdated SSL library. Also miscellaneous systems without usable root certificates.

WALKTHROUGH

  1. Verify you have Python 3 and pip installed by running python --version and python -m pip --version on your system's console/terminal. If not, install Python, make sure to check to include pip and "Add to path" in the installer. If you have Python 3 but not pip, you could use get-pip.
    • On Windows, depending on your installation, Python 3 might be available with the py -3 command instead of python.
    • Some platforms, mostly Linux and macOS, might require you to run python3 instead of python. Some old installations still have Python 2 available under python.
    • On Linux it's better to install Python & pip via your package manager.
    • On macOS it's also possible to install (a more recent version of) Python via Brew.
  2. Install Pesterchum's dependencies with pip, run: python -m pip install -r requirements.txt
    • If this fails, try running python -m pip install -U pip setuptools wheel to update pip, setuptools & wheel and then trying again.
    • Alternatively, many linux distros also have packages for pyqt and pygame.
  3. Download this repository's source, or choose the "Source Code" option on any release, and extract the archive to a folder of your choice.
    • Alternatively, clone the repository with git.
  4. Navigate your terminal to the folder you chose with cd /folder/you/chose.
    • For example, if you extracted it to your documents on Windows, run cd C:\Users\user\Documents\pesterchum-alt-servers-main.
      • Windows's cd command requires the /d flag to navigate to a different drive. (cd D:\pesterchum-alt-servers-main)
  5. Run Pesterchum by running python pesterchum.py or python3 pesterchum.py.

FREEZE / BUILD

Here's a quick guide on how to freeze Pesterchum, (that is, packaging it with python as an executable). :3

Ideally, you'll want to create and activate a virtual environment before anything else, this is not 100% required though.

CX_FREEZE

  1. python3 -m pip install cx_freeze
  2. python3 setup.py build

PYINSTALLER

  1. python3 -m pip install pyinstaller
  2. python3 pyinst.py

SMILIES pesterchum what did you do smilie

Text Smilie
:rancorous: :rancorous: pesterchum smilie/emote
:apple: :apple: pesterchum smilie/emote
:bathearst: :bathearst: pesterchum smilie/emote
:cathearst: :cathearst: pesterchum smilie/emote
:woeful: :woeful: pesterchum smilie/emote
:sorrow: :sorrow: pesterchum smilie/emote
:pleasant: :pleasant: pesterchum smilie/emote
:blueghost: :blueghost: pesterchum smilie/emote
:slimer: :slimer: pesterchum smilie/emote
:candycorn: :candycorn: pesterchum smilie/emote
:cheer: :cheer: pesterchum smilie/emote
:duhjohn: :duhjohn: pesterchum smilie/emote
:datrump: :datrump: pesterchum smilie/emote
:facepalm: :facepalm: pesterchum smilie/emote
:bonk: :bonk: pesterchum smilie/emote
:mspa: :mspa: pesterchum smilie/emote
:gun: :gun: pesterchum smilie/emote
:cal: :cal: pesterchum smilie/emote
:amazedfirman: :amazedfirman: pesterchum smilie/emote
:amazed: :amazed: pesterchum smilie/emote
:chummy: :chummy: pesterchum smilie/emote
:cool: :cool: pesterchum smilie/emote
:smooth: :smooth: pesterchum smilie/emote
:distraughtfirman: :distraughtfirman: pesterchum smilie/emote
:distraught: :distraught: pesterchum smilie/emote
:insolent: :insolent: pesterchum smilie/emote
:bemused: :bemused: pesterchum smilie/emote
:3: :3: pesterchum smilie/emote
:mystified: :mystified: pesterchum smilie/emote
:pranky: :pranky: pesterchum smilie/emote
:tense: :tense: pesterchum smilie/emote
:record: :record: pesterchum smilie/emote
:squiddle: :squiddle: pesterchum smilie/emote
:tab: :tab: pesterchum smilie/emote
:beetip: :beetip: pesterchum smilie/emote
:flipout: :flipout: pesterchum smilie/emote
:befuddled: :befuddled: pesterchum smilie/emote
:pumpkin: :pumpkin: pesterchum smilie/emote
:trollcool: :trollcool: pesterchum smilie/emote
:jadecry: :jadecry: pesterchum smilie/emote
:ecstatic: :ecstatic: pesterchum smilie/emote
:relaxed: :relaxed: pesterchum smilie/emote
:discontent: :discontent: pesterchum smilie/emote
:devious: :devious: pesterchum smilie/emote
:sleek: :sleek: pesterchum smilie/emote
:detestful: :detestful: pesterchum smilie/emote
:mirthful: :mirthful: pesterchum smilie/emote
:manipulative: :manipulative: pesterchum smilie/emote
:vigorous: :vigorous: pesterchum smilie/emote
:perky: :perky: pesterchum smilie/emote
:acceptant: :acceptant: pesterchum smilie/emote
:olliesouty: :olliesouty: pesterchum smilie/emote
:billiards: :billiards: pesterchum smilie/emote
:billiardslarge: :billiardslarge: pesterchum smilie/emote
:whatdidyoudo: :whatdidyoudo: pesterchum smilie/emote
:brocool: :brocool: pesterchum smilie/emote
:trollbro: :trollbro: pesterchum smilie/emote
:playagame: :playagame: pesterchum smilie/emote
:trollc00l: :trollc00l: pesterchum smilie/emote
:suckers: :suckers: pesterchum smilie/emote
:scorpio: :scorpio: pesterchum smilie/emote
:shades: :shades: pesterchum smilie/emote
:honk: :honk: pesterchum smilie/emote