Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
7f262d0
No need for Construct::Syntax
Sep 15, 2018
c7f3ec9
Support config files
Sep 15, 2018
18b7ec4
use my perl (currently 5.28.0)
Sep 15, 2018
a9eb2c7
use configurable copy-url button
Sep 15, 2018
4afef7f
Use geometry configuration as startup geometry
Sep 15, 2018
dea909c
Autologin (only if config is only readable by owner)
Sep 15, 2018
164681a
Timestamp format support
Sep 15, 2018
a7f5eb0
Add author_format
Sep 15, 2018
61d8a3b
History/logging support!
Sep 15, 2018
a2dd69a
Fix offset
Sep 15, 2018
57d495e
Don't double separator on history
Sep 18, 2018
7c478b9
Support links to pad://
choroba Sep 17, 2018
fa1175c
Improve help
choroba Sep 17, 2018
16906f4
Fix: Clear the clipboard before populating it
Sep 18, 2018
df436c4
Make the Copy Link event configurable (merge choroba's changes to help)
Sep 18, 2018
561eef8
Add configurable geometry (merge choroba's work)
Sep 18, 2018
aafaa89
Merge the good parts of choroba's version of history/log
Sep 18, 2018
c45819f
Auto-fork on startup (run in background)
Sep 18, 2018
bb65f2b
copy_link = copy_url
Sep 18, 2018
4ae11cc
Show/grep log util
Sep 20, 2018
04ab0fa
Scroll the read frame after showing active Monks
choroba Sep 28, 2018
ec2098e
Add Pause and XF86Paste to Shift-Insert behavior
Oct 31, 2018
4dbda96
Make paste keys configurable
Oct 31, 2018
7df839a
merge tagging from choroba
Oct 31, 2018
9be1bc3
Correctly parse aliased monks (e.g. [choroba|him])
choroba Oct 23, 2018
2ef09e9
Fix: Regenerate help every time
choroba Oct 31, 2018
5ae8245
Add cpanfile
choroba Jan 4, 2019
982fc23
Don't linkify square bracketted bits inside <c>...</c>
Feb 5, 2019
885ccdd
Skip XF86Paste on MSWin as it doesn't exist there
Apr 8, 2019
7622b72
Fix URL and HTTPS handling
choroba Jun 8, 2019
4823e22
Don't send decoded content to XML::LibXML
choroba Jun 8, 2019
6d78781
Initial WhiteSource configuration file
Jun 15, 2019
55950e5
Format .whitesource file
Jul 10, 2019
336c7b3
Local testing using MCE::Child and MCE::Channel
Jul 12, 2019
2d4b7d9
Completed MCE::Child validation
marioroy Jul 12, 2019
3066a95
Support MCE::Hobo via -m and MCE::Child via -M
Jul 12, 2019
7796319
Handle undisplayable unicode characters on MSWin and Darwin
choroba Jul 12, 2019
46d6622
stack_size is a config value
Aug 17, 2019
dd89ada
Require only thread unsafe libraries (Tk)
Aug 17, 2019
6904a46
Sync with upstream for threads/MCE
Aug 17, 2019
aafee6e
Stay consistent in quoting class names
Aug 17, 2019
6ca3468
sync cpanfile
Aug 17, 2019
089d36d
show correct name of history file in Options
Aug 17, 2019
78859d2
Backward compat: config "use_mce" now means "use_mce_child"
Aug 19, 2019
10f767f
Fix links to node://, href:// and http(s)://
Oct 6, 2019
7becc0d
Make & work in clickable URLs
Oct 6, 2019
b025202
defined instead of exists
Oct 6, 2019
1b20355
MCE::Child can't unshift messages. Send a QUIT signal instead
Feb 25, 2020
208f6c3
Make the cursor visible in any background
Feb 25, 2020
27a45d3
Add a readme with license information
choroba Mar 10, 2020
b369c9d
Replace spaces in URLs with pluses
Mar 23, 2020
8a89ccb
Add information to README.md
hakonhagland Apr 19, 2020
682d6f2
Retry asking for node titles after a while
May 26, 2020
8661b42
Grey the "last updated" label when greying the seen lines
Tux Jan 13, 2021
8c56757
conf{mce} is a struct-entry
Tux Jan 13, 2021
ee960e6
Prefix warnings
choroba Sep 7, 2021
c53bec1
Fix formatting
choroba Sep 7, 2021
2a9d1ad
Add prefix to warnings
choroba Sep 7, 2021
6387054
Use the new link handling API to resolve shortcuts
Tux Sep 8, 2021
6ac58d0
Add dependency to cpanfile
choroba Sep 7, 2021
c75fd0a
Log more logfiles
Tux Sep 8, 2021
3998a79
Revert bind merges. Now Shift-Insert/Break etc work again
Tux Sep 8, 2021
862044a
Don't process http(s) links through PerlMonks
choroba Sep 7, 2021
9304167
Warn the user when the message is longer than the CB limit
choroba Jan 23, 2022
ca1afb9
Make the warn color customizable
Tux Jan 24, 2022
2a58029
Sort private messages correctly
choroba Jul 18, 2022
35decac
Use a default title for titleless nodes
choroba Sep 15, 2022
677189c
Simplify the loop that was always running just once
choroba Oct 3, 2022
72eba9d
Prevent uninitialized warning
choroba Jan 19, 2024
e2a98a1
Limit reasking for titles
choroba Jan 19, 2024
1c8850e
Support PerlMonks special markup case insensitive
Tux Mar 29, 2024
6c992c6
Confirm sending a personal message
choroba Apr 10, 2024
128c408
Fix surrogate title setting
choroba Apr 12, 2024
69b4fb5
Stop fetching private messages infinitely if PM is not responsive
choroba Aug 29, 2024
4ecc4c3
Delete a private message by clicking on the author name
choroba Oct 9, 2024
c2c1351
Use a constant to explain why id=0 is passed to pseudo private msgs
choroba Oct 10, 2024
d4c4969
Stop deleting an already deleted message
choroba Oct 10, 2024
16dfc20
Use explicit index.pl to workaround a PM misconfiguration
choroba Oct 17, 2024
f351ea8
Prevent uninitialized warnings
choroba Oct 17, 2024
d0e4f85
Fix more URLs
choroba Oct 17, 2024
8fbffad
Add an icon
choroba Oct 26, 2024
de190e7
Reply to a private message by middle-clicking on the author
Tux Oct 28, 2024
6c7c9ce
Trivial: Remove unused variables
Tux Oct 28, 2024
72c56f5
Blink the icon if user is mentioned or gets a priv msg without focus
Tux Oct 28, 2024
4090206
missed icon → icon_path
Tux Oct 28, 2024
6da9f6f
missed a $
Tux Oct 31, 2024
8eb83d9
Reply publicly to public messages
Tux Oct 31, 2024
cce044d
Remove a debugging message
choroba Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .whitesource
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"generalSettings": {
"shouldScanRepo": true
},
"checkRunSettings": {
"vulnerableCheckRunConclusionLevel": "failure"
}
}
58 changes: 58 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
pm-cb is Copyright (C) 2017-2020, E. Choroba

PerlMonks ChatterBox Client
==

DESCRIPTION
--

There are two executable programs, `pm-cb` and `pm-cb-g`. The former
doesn't implement a full chat client (you can't use it to post to the
ChatterBox) and is no longer supported. The latter is a graphical
client to PerlMonks' ChatterBox written in Perl and Tk.

Pull requests welcome!

PREQUISITES
--
Install required modules using
```
cpanm --installdeps .
```

If your `perl` has been compiled with thread support:

```
perl -MConfig -E 'say "Threads supported" if $Config{useithreads}'
```
you can simply start the program with

```
perl pm-cb-g

```
If threads are not supported, either compile a new perl with threads enabled,
e.g.

```
perlbrew install perl-5.30.0 --as=5.30.0-threads -Dusethreads
perlbrew use 5.30.0-threads
```
or run the program using `MCE::Hobo` with
```
perl pm-cb-g --mce_hobo
```
or with `MCE::Child`
```
perl pm-cb-g --mce_child
```


LICENSE INFORMATION
--

This code is free software; you can redistribute it and/or modify it
under the same terms as Perl 5.30 (see [the Perl Artistic
License](https://perldoc.pl/perlartistic) and [the GNU General Public
License, version 1](https://perldoc.pl/perlgpl)).

39 changes: 39 additions & 0 deletions alert.xpm
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* XPM */
static char * pm_xpm[] = {
"32 32 4 1",
" c black",
". c red",
"X c yellow",
"o c brown",
" ",
" .............................. ",
" .............................. ",
" .............................. ",
" XXXXX......................XXX ",
" XXXXXX....................XXXX ",
" ....XXX..................XX... ",
" ......X..................X.... ",
" ......XX................XX.... ",
" ......XX................X..... ",
" ...X...XX..............XX..... ",
" ..XXX..XX............XXX...X.. ",
" ...X...XX...........XX....XoX. ",
" ........XX.........XX......XX. ",
" ........XX.........XXXX....... ",
" .........XX...........X....... ",
" .........XX...........XX...... ",
" ......XXXX............XXXX.... ",
" .....XX..................XX... ",
" ..XXXX....................XX.. ",
" .XX.......................XX.. ",
" ..XXXX...................XX... ",
" .....XXX.............XXXXX.... ",
" ......XX.............XX....... ",
" ..X..XX...............XXX..... ",
" XXXX.XX.................XXX... ",
" XX..XX....................XXX. ",
" X...........................XX ",
" .............................X ",
" .............................X ",
" .............................. ",
" "};
31 changes: 31 additions & 0 deletions cpanfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
use Config;

# The MCE 1.841 distribution includes MCE::Channel and MCE::Child.
# Thus, suggesting or requiring MCE::Child will pick up minimally MCE 1.841.
# MCE::Hobo is included with MCE::Shared.

on build => sub {
if ($Config{usethreads}) {
suggests 'MCE::Child';
suggests 'MCE::Hobo';
} else {
requires 'MCE::Child';
requires 'MCE::Hobo';
}
suggests 'MCE::Child';
suggests 'MCE::Channel';
};

requires 'FindBin';
requires 'Getopt::Long';
requires 'Pod::Usage';
requires 'Time::HiRes';
requires 'Time::Piece';
requires 'charnames';

requires 'List::Util';
requires 'LWP::Protocol::https';
requires 'Syntax::Construct';
requires 'Tk';
requires 'WWW::Mechanize';
requires 'XML::LibXML';
16 changes: 16 additions & 0 deletions lib/PM/CB/Common.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package PM::CB::Common;

use warnings;
use strict;

use Exporter qw{ import };
our @EXPORT_OK = qw{ to_entities };

sub to_entities {
my ($message) = @_;
$message =~ s/(.)/ord $1 > 127 ? '&#' . ord($1) . ';' : $1/ge;
return $message
}


__PACKAGE__
Loading