+
+ $name = lc($name);
+
+ if ($name eq 'direct') {
+ write_irssi("Cannot remove direct connector");
+ return;
+ }
+
+ unless (exists($connconf->{$_})) {
+ write_irssi("Connector does not exist");
+ return;
+ }
+
+ delete($connconf->{$name});
+
+ # Remove from list of active connectors
+ $conf->{'videosite'}->{'connectorlist'} =
+ [ grep { $_ ne $name } @{$conf->{'videosite'}->{'connectorlist'}} ];
+
+ if (scalar(@{$conf->{'videosite'}->{'connectorlist'}}) == 0) {
+ write_irssi("List of selected connectors is empty, resetting to direct");
+ $conf->{'videosite'}->{'connectorlist'} = [ 'direct' ];
+ }
+ } elsif ($subcmd eq 'addschema') {
+ my ($conn, $schema, $proxy) = @_;
+
+ unless(defined($conn)) {
+ write_irssi("No connector name given");
+ return;
+ }
+
+ $conn = lc($conn);
+
+ if ($conn eq 'direct') {
+ write_irssi("Connector is not modifiable");
+ return;
+ }
+
+ unless(defined($schema)) {
+ write_irssi("No schema given");
+ return;
+ }
+
+ $schema = lc($schema);
+
+ unless(defined($proxy)) {
+ write_irssi("No proxy given");
+ return;
+ }
+
+ unless(exists($connconf->{$conn})) {
+ write_irssi("Connector does not exist");
+ return;
+ }
+
+ $connconf->{$conn}->{'schemas'}->{$schema} = $proxy;
+ } elsif ($subcmd eq 'delschema') {
+ my ($conn, $schema) = @_;
+
+ unless(defined($conn)) {
+ write_irssi("No connector name given");
+ return;
+ }
+
+ $conn = lc($conn);
+
+ if ($conn eq 'direct') {
+ write_irssi("Connector is not modifiable");
+ return;
+ }
+
+ unless(defined($schema)) {
+ write_irssi("No schema given");
+ return;
+ }
+
+ $schema = lc($schema);
+
+ unless(exists($connconf->{$conn})) {
+ write_irssi("Connector does not exist");
+ return;
+ }
+
+ delete($connconf->{$conn}->{'schemas'}->{$schema});
+ } elsif ($subcmd eq 'select') {
+ my @connlist = @_;
+
+ if (scalar(@connlist) == 0) {
+ write_irssi("No connectors given");
+ return;
+ }
+
+ foreach (@connlist) {
+ unless(exists($connconf->{$_})) {
+ write_irssi("Connector %s does not exist", $_);
+ return;
+ }
+ }
+
+ $conf->{'videosite'}->{'connectorlist'} = [ @connlist ];