3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-08 04:59:33 +01:00

Move Storage and Utils into Core

This commit is contained in:
Pragmatic Software 2021-07-23 19:22:25 -07:00
parent 1b15ba615b
commit 7b703ccffe
32 changed files with 57 additions and 57 deletions

View File

@ -50,13 +50,13 @@ use PBot::Core::Registry;
use PBot::Core::Refresher; use PBot::Core::Refresher;
use PBot::Core::SelectHandler; use PBot::Core::SelectHandler;
use PBot::Core::StdinReader; use PBot::Core::StdinReader;
use PBot::Core::Storage::HashObject;
use PBot::Core::Storage::DualIndexHashObject;
use PBot::Core::Storage::DualIndexSQLiteObject;
use PBot::Core::Updater; use PBot::Core::Updater;
use PBot::Core::Users; use PBot::Core::Users;
use PBot::Core::Utils::ParseDate;
use PBot::Core::WebPaste; use PBot::Core::WebPaste;
use PBot::Storage::HashObject;
use PBot::Storage::DualIndexHashObject;
use PBot::Storage::DualIndexSQLiteObject;
use PBot::Utils::ParseDate;
use Encode; use Encode;
use File::Basename; use File::Basename;
@ -195,15 +195,15 @@ sub initialize {
$self->{messagehistory} = PBot::Core::MessageHistory->new(pbot => $self, filename => "$conf{data_dir}/message_history.sqlite3", %conf); $self->{messagehistory} = PBot::Core::MessageHistory->new(pbot => $self, filename => "$conf{data_dir}/message_history.sqlite3", %conf);
$self->{modules} = PBot::Core::Modules->new(pbot => $self, %conf); $self->{modules} = PBot::Core::Modules->new(pbot => $self, %conf);
$self->{nicklist} = PBot::Core::NickList->new(pbot => $self, %conf); $self->{nicklist} = PBot::Core::NickList->new(pbot => $self, %conf);
$self->{parsedate} = PBot::Utils::ParseDate->new(pbot => $self, %conf); $self->{parsedate} = PBot::Core::Utils::ParseDate->new(pbot => $self, %conf);
$self->{plugins} = PBot::Core::Plugins->new(pbot => $self, %conf); $self->{plugins} = PBot::Core::Plugins->new(pbot => $self, %conf);
$self->{process_manager} = PBot::Core::ProcessManager->new(pbot => $self, %conf); $self->{process_manager} = PBot::Core::ProcessManager->new(pbot => $self, %conf);
$self->{select_handler} = PBot::Core::SelectHandler->new(pbot => $self, %conf); $self->{select_handler} = PBot::Core::SelectHandler->new(pbot => $self, %conf);
$self->{stdin_reader} = PBot::Core::StdinReader->new(pbot => $self, %conf); $self->{stdin_reader} = PBot::Core::StdinReader->new(pbot => $self, %conf);
$self->{webpaste} = PBot::Core::WebPaste->new(pbot => $self, %conf); $self->{webpaste} = PBot::Core::WebPaste->new(pbot => $self, %conf);
# register commands in Commands directory # load commands in Commands directory
$self->{commands}->register_commands; $self->{commands}->load_commands;
# register command/factoid interpreters # register command/factoid interpreters
$self->{interpreter}->register(sub { $self->{commands}->interpreter(@_) }); $self->{interpreter}->register(sub { $self->{commands}->interpreter(@_) });

View File

@ -15,9 +15,9 @@ sub initialize {
my $filename = $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/spam_keywords'; my $filename = $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/spam_keywords';
$self->{keywords} = PBot::Storage::DualIndexHashObject->new( $self->{keywords} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'SpamKeywords', name => 'SpamKeywords',
filename => $filename, filename => $filename,
); );

View File

@ -33,20 +33,20 @@ sub initialize {
my $data_dir = $self->{pbot}->{registry}->get_value('general', 'data_dir'); my $data_dir = $self->{pbot}->{registry}->get_value('general', 'data_dir');
$self->{'ban-exemptions'} = PBot::Storage::DualIndexHashObject->new( $self->{'ban-exemptions'} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Ban exemptions', name => 'Ban exemptions',
filename => "$data_dir/ban-exemptions", filename => "$data_dir/ban-exemptions",
); );
$self->{banlist} = PBot::Storage::DualIndexHashObject->new( $self->{banlist} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Ban List', name => 'Ban List',
filename => "$data_dir/banlist", filename => "$data_dir/banlist",
save_queue_timeout => 15, save_queue_timeout => 15,
); );
$self->{quietlist} = PBot::Storage::DualIndexHashObject->new( $self->{quietlist} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Quiet List', name => 'Quiet List',
filename => "$data_dir/quietlist", filename => "$data_dir/quietlist",

View File

@ -17,7 +17,7 @@ sub initialize {
my $filename = $conf{filename} // $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/capabilities'; my $filename = $conf{filename} // $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/capabilities';
# capabilities hash table # capabilities hash table
$self->{caps} = PBot::Storage::HashObject->new( $self->{caps} = PBot::Core::Storage::HashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Capabilities', name => 'Capabilities',
filename => $filename, filename => $filename,

View File

@ -13,7 +13,7 @@ use PBot::Imports;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;
$self->{storage} = PBot::Storage::HashObject->new( $self->{storage} = PBot::Core::Storage::HashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Channels', name => 'Channels',
filename => $conf{filename} filename => $conf{filename}

View File

@ -11,7 +11,7 @@ use parent 'PBot::Core::Class';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::LoadModules qw/load_modules/; use PBot::Core::Utils::LoadModules qw/load_modules/;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;
@ -20,7 +20,7 @@ sub initialize {
$self->{commands} = {}; $self->{commands} = {};
# command metadata stored as a HashObject # command metadata stored as a HashObject
$self->{metadata} = PBot::Storage::HashObject->new( $self->{metadata} = PBot::Core::Storage::HashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Command metadata', name => 'Command metadata',
filename => $conf{filename}, filename => $conf{filename},

View File

@ -18,7 +18,7 @@ use Storable;
use LWP::UserAgent; use LWP::UserAgent;
use JSON; use JSON;
use PBot::Utils::SafeFilename; use PBot::Core::Utils::SafeFilename;
our %factoid_metadata_capabilities = ( our %factoid_metadata_capabilities = (
created_on => 'botowner', created_on => 'botowner',

View File

@ -12,7 +12,7 @@ use parent 'PBot::Core::Class';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::PriorityQueue; use PBot::Core::Utils::PriorityQueue;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;
@ -47,7 +47,7 @@ sub register_handler {
# create new priority-queue for event-name if one doesn't exist # create new priority-queue for event-name if one doesn't exist
if (not exists $self->{handlers}->{$event_name}) { if (not exists $self->{handlers}->{$event_name}) {
$self->{handlers}->{$event_name} = PBot::Utils::PriorityQueue->new(pbot => $self->{pbot}); $self->{handlers}->{$event_name} = PBot::Core::Utils::PriorityQueue->new(pbot => $self->{pbot});
} }
# add the event handler # add the event handler

View File

@ -13,13 +13,13 @@ use parent 'PBot::Core::Class';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::PriorityQueue; use PBot::Core::Utils::PriorityQueue;
use Time::HiRes qw/time/; use Time::HiRes qw/time/;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;
$self->{event_queue} = PBot::Utils::PriorityQueue->new(pbot => $self->{pbot}); $self->{event_queue} = PBot::Core::Utils::PriorityQueue->new(pbot => $self->{pbot});
} }
# returns seconds until upcoming event. # returns seconds until upcoming event.

View File

@ -17,8 +17,8 @@ use POSIX qw(strftime);
use Text::ParseWords; use Text::ParseWords;
use JSON; use JSON;
use PBot::Utils::Indefinite; use PBot::Core::Utils::Indefinite;
use PBot::Utils::ValidateString; use PBot::Core::Utils::ValidateString;
our %factoid_metadata = ( our %factoid_metadata = (
'action' => 'TEXT', 'action' => 'TEXT',
@ -65,7 +65,7 @@ sub initialize {
$self->{pbot} = $self->{pbot}; $self->{pbot} = $self->{pbot};
$self->{storage} = PBot::Storage::DualIndexSQLiteObject->new( $self->{storage} = PBot::Core::Storage::DualIndexSQLiteObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Factoids', name => 'Factoids',
filename => $filename, filename => $filename,

View File

@ -10,7 +10,7 @@ use parent 'PBot::Core::Class';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::LoadModules qw/load_modules/; use PBot::Core::Utils::LoadModules qw/load_modules/;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;

View File

@ -17,7 +17,7 @@ sub initialize {
$self->{filename} = $conf{filename}; $self->{filename} = $conf{filename};
$self->{storage} = PBot::Storage::DualIndexHashObject->new( $self->{storage} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'IgnoreList', name => 'IgnoreList',
filename => $self->{filename} filename => $self->{filename}

View File

@ -22,7 +22,7 @@ use Time::Duration;
use Encode; use Encode;
use Unicode::Truncate; use Unicode::Truncate;
use PBot::Utils::ValidateString; use PBot::Core::Utils::ValidateString;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;

View File

@ -16,8 +16,8 @@ use PBot::Imports;
use PBot::Core::MessageHistory::Constants ':all'; use PBot::Core::MessageHistory::Constants ':all';
use PBot::Utils::SQLiteLogger; use PBot::Core::Utils::SQLiteLogger;
use PBot::Utils::SQLiteLoggerLayer; use PBot::Core::Utils::SQLiteLoggerLayer;
use DBI; use DBI;
use Carp qw/shortmess/; use Carp qw/shortmess/;
@ -60,7 +60,7 @@ sub sqlite_debug_trigger {
my ($self, $section, $item, $newvalue) = @_; my ($self, $section, $item, $newvalue) = @_;
if ($newvalue) { if ($newvalue) {
open $self->{trace_layer}, '>:via(PBot::Utils::SQLiteLoggerLayer)', PBot::Utils::SQLiteLogger->new(pbot => $self->{pbot}); open $self->{trace_layer}, '>:via(PBot::Core::Utils::SQLiteLoggerLayer)', PBot::Core::Utils::SQLiteLogger->new(pbot => $self->{pbot});
} else { } else {
close $self->{trace_layer} if $self->{trace_layer}; close $self->{trace_layer} if $self->{trace_layer};
delete $self->{trace_layer}; delete $self->{trace_layer};
@ -80,7 +80,7 @@ sub begin {
eval { eval {
my $sqlite_debug = $self->{pbot}->{registry}->get_value('messagehistory', 'sqlite_debug'); my $sqlite_debug = $self->{pbot}->{registry}->get_value('messagehistory', 'sqlite_debug');
if ($sqlite_debug) { if ($sqlite_debug) {
open $self->{trace_layer}, '>:via(PBot::Utils::SQLiteLoggerLayer)', PBot::Utils::SQLiteLogger->new(pbot => $self->{pbot}); open $self->{trace_layer}, '>:via(PBot::Core::Utils::SQLiteLoggerLayer)', PBot::Core::Utils::SQLiteLogger->new(pbot => $self->{pbot});
$self->{dbh}->trace($self->{dbh}->parse_trace_flags("SQL|$sqlite_debug"), $self->{trace_layer}); $self->{dbh}->trace($self->{dbh}->parse_trace_flags("SQL|$sqlite_debug"), $self->{trace_layer});
} }

View File

@ -18,7 +18,7 @@ sub initialize {
my $filename = $conf{filename} // Carp::croak("Missing filename configuration item in " . __FILE__); my $filename = $conf{filename} // Carp::croak("Missing filename configuration item in " . __FILE__);
# registry is stored as a dual-index hash object # registry is stored as a dual-index hash object
$self->{storage} = PBot::Storage::DualIndexHashObject->new( $self->{storage} = PBot::Core::Storage::DualIndexHashObject->new(
pbot => $self->{pbot}, pbot => $self->{pbot},
name => 'Registry', name => 'Registry',
filename => $filename, filename => $filename,

View File

@ -10,12 +10,12 @@
# Data is stored in working memory for lightning fast performance. If you have # Data is stored in working memory for lightning fast performance. If you have
# a huge amount of data, consider using DualIndexSQLiteObject instead. # a huge amount of data, consider using DualIndexSQLiteObject instead.
# #
# If a filename is provided, data is written to a file after any modifications. # If a filename is provided, data is written to the file after any modifications.
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Storage::DualIndexHashObject; package PBot::Core::Storage::DualIndexHashObject;
use PBot::Imports; use PBot::Imports;

View File

@ -11,12 +11,12 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Storage::DualIndexSQLiteObject; package PBot::Core::Storage::DualIndexSQLiteObject;
use PBot::Imports; use PBot::Imports;
use PBot::Utils::SQLiteLogger; use PBot::Core::Utils::SQLiteLogger;
use PBot::Utils::SQLiteLoggerLayer; use PBot::Core::Utils::SQLiteLoggerLayer;
use DBI; use DBI;
use Text::Levenshtein qw(fastdistance); use Text::Levenshtein qw(fastdistance);
@ -63,7 +63,7 @@ sub begin {
eval { eval {
my $sqlite_debug = $self->{pbot}->{registry}->get_value('dualindexsqliteobject', "debug_$self->{name}"); my $sqlite_debug = $self->{pbot}->{registry}->get_value('dualindexsqliteobject', "debug_$self->{name}");
open $self->{trace_layer}, '>:via(PBot::Utils::SQLiteLoggerLayer)', PBot::Utils::SQLiteLogger->new(pbot => $self->{pbot}); open $self->{trace_layer}, '>:via(PBot::Core::Utils::SQLiteLoggerLayer)', PBot::Core::Utils::SQLiteLogger->new(pbot => $self->{pbot});
$self->{dbh}->trace($self->{dbh}->parse_trace_flags("SQL|$sqlite_debug"), $self->{trace_layer}); $self->{dbh}->trace($self->{dbh}->parse_trace_flags("SQL|$sqlite_debug"), $self->{trace_layer});
}; };

View File

@ -6,12 +6,12 @@
# displaying index key. # displaying index key.
# #
# Data is stored in working memory for lightning fast performance. If a filename # Data is stored in working memory for lightning fast performance. If a filename
# is provided, data is written to a file after any modifications. # is provided, data is written to the file after any modifications.
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Storage::HashObject; package PBot::Core::Storage::HashObject;
use PBot::Imports; use PBot::Imports;

View File

@ -13,7 +13,7 @@ use PBot::Imports;
sub initialize { sub initialize {
my ($self, %conf) = @_; my ($self, %conf) = @_;
$self->{storage} = PBot::Storage::HashObject->new( $self->{storage} = PBot::Core::Storage::HashObject->new(
pbot => $conf{pbot}, pbot => $conf{pbot},
name => 'Users', name => 'Users',
filename => $conf{filename}, filename => $conf{filename},

View File

@ -2,7 +2,7 @@
# #
# Purpose: Implements a/an inflexion for nouns. # Purpose: Implements a/an inflexion for nouns.
package PBot::Utils::Indefinite; package PBot::Core::Utils::Indefinite;
use PBot::Imports; use PBot::Imports;

View File

@ -7,7 +7,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::LWPUserAgentCached; package PBot::Core::Utils::LWPUserAgentCached;
use PBot::Imports; use PBot::Imports;

View File

@ -6,7 +6,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::LoadModules; package PBot::Core::Utils::LoadModules;
use PBot::Imports; use PBot::Imports;

View File

@ -6,7 +6,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::ParseDate; package PBot::Core::Utils::ParseDate;
use PBot::Imports; use PBot::Imports;

View File

@ -5,7 +5,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::PriorityQueue; package PBot::Core::Utils::PriorityQueue;
use PBot::Imports; use PBot::Imports;

View File

@ -6,7 +6,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::SQLiteLogger; package PBot::Core::Utils::SQLiteLogger;
use PBot::Imports; use PBot::Imports;

View File

@ -5,7 +5,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::SQLiteLoggerLayer; package PBot::Core::Utils::SQLiteLoggerLayer;
use PBot::Imports; use PBot::Imports;

View File

@ -6,7 +6,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::SafeFilename; package PBot::Core::Utils::SafeFilename;
use PBot::Imports; use PBot::Imports;

View File

@ -7,7 +7,7 @@
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
package PBot::Utils::ValidateString; package PBot::Core::Utils::ValidateString;
use PBot::Imports; use PBot::Imports;

View File

@ -1,6 +1,6 @@
# File: ParseDate.pm # File: ParseDate.pm
# #
# Purpose: Just a simple interface to test/play with PBot::Utils::ParseDate # Purpose: Just a simple interface to test/play with PBot::Core::Utils::ParseDate
# and make sure it's working properly. # and make sure it's working properly.
# #
# SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com> # SPDX-FileCopyrightText: 2021 Pragmatic Software <pragma78@gmail.com>

View File

@ -20,7 +20,7 @@ use Getopt::Long qw(GetOptionsFromArray);
use PBot::Plugin::Quotegrabs::Storage::SQLite; # use SQLite backend for quotegrabs database use PBot::Plugin::Quotegrabs::Storage::SQLite; # use SQLite backend for quotegrabs database
#use PBot::Plugin::Quotegrabs::Storage::Hashtable; # use Perl hashtable backend for quotegrabs database #use PBot::Plugin::Quotegrabs::Storage::Hashtable; # use Perl hashtable backend for quotegrabs database
use PBot::Utils::ValidateString; use PBot::Core::Utils::ValidateString;
use POSIX qw(strftime); use POSIX qw(strftime);

View File

@ -10,7 +10,7 @@ use parent 'PBot::Plugin::Base';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::LWPUserAgentCached; use PBot::Core::Utils::LWPUserAgentCached;
use XML::LibXML; use XML::LibXML;
use Getopt::Long qw(GetOptionsFromArray); use Getopt::Long qw(GetOptionsFromArray);
@ -72,7 +72,7 @@ sub get_weather {
'default_expires_in' => 3600 'default_expires_in' => 3600
); );
my $ua = PBot::Utils::LWPUserAgentCached->new(\%cache_opt, timeout => 10); my $ua = PBot::Core::Utils::LWPUserAgentCached->new(\%cache_opt, timeout => 10);
my $response = $ua->get("http://rss.accuweather.com/rss/liveweather_rss.asp?metric=0&locCode=$location"); my $response = $ua->get("http://rss.accuweather.com/rss/liveweather_rss.asp?metric=0&locCode=$location");
my $xml; my $xml;

View File

@ -9,7 +9,7 @@ package PBot::Plugin::Wttr;
use parent 'PBot::Plugin::Base'; use parent 'PBot::Plugin::Base';
use PBot::Imports; use PBot::Imports;
use PBot::Utils::LWPUserAgentCached; use PBot::Core::Utils::LWPUserAgentCached;
use JSON; use JSON;
use URI::Escape qw/uri_escape_utf8/; use URI::Escape qw/uri_escape_utf8/;
@ -113,7 +113,7 @@ sub get_wttr {
my $location_uri = uri_escape_utf8 $location; my $location_uri = uri_escape_utf8 $location;
my $ua = PBot::Utils::LWPUserAgentCached->new(\%cache_opt, timeout => 30); my $ua = PBot::Core::Utils::LWPUserAgentCached->new(\%cache_opt, timeout => 30);
my $response = $ua->get("http://wttr.in/$location_uri?format=j1&m"); my $response = $ua->get("http://wttr.in/$location_uri?format=j1&m");
my $json; my $json;