summaryrefslogtreecommitdiff
path: root/lib/Bookmarks/Utils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bookmarks/Utils.pm')
-rw-r--r--lib/Bookmarks/Utils.pm45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/Bookmarks/Utils.pm b/lib/Bookmarks/Utils.pm
new file mode 100644
index 0000000..fd0b68d
--- /dev/null
+++ b/lib/Bookmarks/Utils.pm
@@ -0,0 +1,45 @@
+package Bookmarks::Utils;
+use strict;
+use warnings;
+use LWP::Simple;
+use URI::URL;
+
+sub check_link {
+ my ($url)=@_;
+ return 1 if $url!~/^http:/;
+ #my ($type,$length,$update,$expires,$server)=head($url);
+ #return defined $type;
+ return scalar head($url);
+}
+
+sub get_site_icon {
+ my ($url)=@_;
+
+ return if $url!~/^http:/;
+
+ print "Provo nella pagina\n";
+ my $page=get($url);
+ my ($favicon)= grep {defined $_ and $_ ne ''}
+ ($page =~
+ m{<link
+ \s+
+ (?:
+ rel="shortcut\ icon"
+ \s+
+ href="(.*?)"
+ )|(?:
+ href="(.*?)"
+ \s+
+ rel="shortcut\ icon"
+ )}smx);
+ if (!$favicon) {
+ $favicon='/favicon.ico';
+ }
+ print "Trovato: '$favicon'";
+ $favicon=URI::URL->new($favicon,$url)->abs->canonical->as_string;
+ print ", ovvero '$favicon'\n";
+ my $icon=get($favicon);
+ return $icon;
+}
+
+1;