videosite-dl: Add -i command line option to print information instead of downloading
[videosite.git] / videosite.pl
index 26ca480..d87b598 100644 (file)
@@ -22,6 +22,7 @@ use vars qw($VERSION %IRSSI);
 use XML::Simple;
 use Data::Dumper;
 use File::Spec;
+use File::Temp qw(tempfile);
 use BettIrssi 101 qw(_bcb _bcs);
 use LWP::UserAgent;
 
@@ -167,6 +168,7 @@ sub expand_url_shortener {
         '2\.ly/[[:alnum:]]+',
         't\.co/[[:alnum:]]+',
         'shar\.es/[[:alnum:]]+',
+        'goo\.gl/[[:alnum:]]+',
         );
     my $ua = LWP::UserAgent->new(agent => 'Mozilla', max_redirect => 0);
     my $i = 10;
@@ -259,10 +261,12 @@ sub check_for_link {
 
 sub cmd_save {
 
+
     eval {
-        open(CONF, '>'.$conffile) or die 'Could not open config file';
-        print CONF XML::Simple::XMLout($conf, KeepRoot => 1, KeyAttr => {'config' => 'module', 'option' => 'key'});
-        close(CONF);
+        my ($tempfile, $tempfn) = tempfile("videosite.xml.XXXXXX", dir => Irssi::get_irssi_dir());
+        print $tempfile XML::Simple::XMLout($conf, KeepRoot => 1, KeyAttr => {'config' => 'module', 'option' => 'key'});
+        close($tempfile);
+        rename($tempfn, $conffile);
     };
     if ($@) {
         write_irssi('Could not save config to %s: %s', ($conffile, $@));