diff --git a/mail/p5-GetLive/Makefile b/mail/p5-GetLive/Makefile index bfd4fd5d720..024c5300562 100644 --- a/mail/p5-GetLive/Makefile +++ b/mail/p5-GetLive/Makefile @@ -1,9 +1,9 @@ -# $OpenBSD: Makefile,v 1.4 2008/07/10 14:37:31 merdely Exp $ +# $OpenBSD: Makefile,v 1.5 2008/11/10 20:23:50 merdely Exp $ COMMENT= automatically fetch hotmail.com email DISTNAME= GetLive_0_57 -PKGNAME= p5-GetLive-0.57 +PKGNAME= p5-GetLive-0.57p0 CATEGORIES= mail perl5 EXTRACT_SUFX= .tgz diff --git a/mail/p5-GetLive/patches/patch-GetLive_pl b/mail/p5-GetLive/patches/patch-GetLive_pl index 9271b03ffa0..8dd44451c98 100644 --- a/mail/p5-GetLive/patches/patch-GetLive_pl +++ b/mail/p5-GetLive/patches/patch-GetLive_pl @@ -1,7 +1,7 @@ -$OpenBSD: patch-GetLive_pl,v 1.2 2008/07/10 14:37:31 merdely Exp $ ---- GetLive.pl.orig Sat Sep 8 14:23:33 2007 -+++ GetLive.pl Wed Oct 10 07:59:06 2007 -@@ -53,7 +53,7 @@ my $Password = ""; +$OpenBSD: patch-GetLive_pl,v 1.3 2008/11/10 20:23:50 merdely Exp $ +--- GetLive.pl.orig Mon Nov 10 14:39:12 2008 ++++ GetLive.pl Mon Nov 10 14:41:25 2008 +@@ -65,11 +65,12 @@ my $Password = ""; my $Domain = 'hotmail.com'; my $CurlCommand = 'curl -k'; my $Verbosity = 1; # 0:Silent; 1:Normal; 2:Verbose; 10:debug; 100:heavy debug @@ -10,3 +10,283 @@ $OpenBSD: patch-GetLive_pl,v 1.2 2008/07/10 14:37:31 merdely Exp $ my $DownloadedIdsFile = ""; # Local file with Ids of already downloaded messages. my $RetryLimit = 2; my $MarkRead = "No"; # No,Yes : But never when downloaded before ! + my $Delete = "No"; # No,Yes : But never when downloaded before ! ++my $SkipTrash = "No"; # No,Yes : Do not handle the Trash folder + my $FetchOnlyUnread = "No"; # If Yes, only messages marked unread are downloaded. + # Unlike gotmail, this is completely orthogonal to the + # DownloadedIdsFile, i.e. it is the one or the other. +@@ -78,6 +79,8 @@ my $MoveToFolder = ""; # + # contains the folder to move to. This is a hook for + # autoclassifying the mail on the server, including spam filtering. + ++my $Mode = "200809"; ++ + # Quirk. MS generates unended
tags. Hope this is a temporary weakness in their mind. + # (Hope makes living, we say in Dutch ...) + # If we want to allow it set this to one. Currently as of 8/9/2007 it must be accepted or the +@@ -275,7 +278,7 @@ sub ParseConfig { + } elsif ($Option =~ m/^Password$/i) { + $Password = $OptionValue; + } elsif ($Option =~ m/^Mode$/i) { +- warn "\n'Mode = ...' in the config file is ignored.\nThis version works only for 'Live' mailboxes !\n"; ++ $Mode = $OptionValue; + } elsif ($Option =~ m/^Domain$/i) { + $Domain = $OptionValue; + } elsif ($Option =~ m/^Proxy$/i) { +@@ -298,6 +301,8 @@ sub ParseConfig { + $MarkRead = $OptionValue; + } elsif ($Option =~ m/^Delete$/i) { + $Delete = $OptionValue; ++ } elsif ($Option =~ m/^SkipTrash$/i) { ++ $SkipTrash = $OptionValue; + } elsif ($Option =~ m/^MoveToFolder$/i) { + $MoveToFolder = $OptionValue; + } else { +@@ -332,6 +337,10 @@ sub ParseConfig { + Display("MarkRead should take No or Yes as argument in the configuration file.\n",stderr=>1); + DisplayUsageAndExit(); + } ++ if ($SkipTrash !~ m/^(No|Yes)$/i) { ++ Display("SkipTrash should take No or Yes as argument in the configuration file.\n",stderr=>1); ++ DisplayUsageAndExit(); ++ } + if ($Delete !~ m/^(No|Yes)$/i) { + Display("Delete should take No or Yes as argument in the configuration file.\n",stderr=>1); + DisplayUsageAndExit(); +@@ -340,6 +349,10 @@ sub ParseConfig { + Display("Delete must be 'No' when MoveToFolder is also specified in the configuration file.\n",stderr=>1); + DisplayUsageAndExit(); + } ++ if ($Mode !~ m/^(200809|200810)$/i) { ++ Display("Mode must be oneof 200809 or 200810 as argument in the configuration file.\n",stderr=>1); ++ DisplayUsageAndExit(); ++ } + } + + ######################################################################################################################## +@@ -535,7 +548,7 @@ sub Login() { + + Display("Getting hotmail index loginpage.\n", MinVerbosity =>2); + +- my ($LoginPageAsString,$GetPageUrl) = GetPage(Url => "http://mail.live.com",FollowForward => 1); ++ my ($LoginPageAsString,$GetPageUrl) = GetPage(Url => "http://mail.live.com/",FollowForward => 1); + + # We expect here a number of functions now (aug 2007) to be hidden in a javascript + # that is loaded separately. Let's load and append. +@@ -960,7 +973,7 @@ sub GetMessagesFromFolder($) { + "au=$AuthUser&". + "ptid=0"; + my $PostData = ""; +- if ($Page == 1) { ++ if ($Mode =~ m/200809/ && $Page == 1) { + $PostData = "cn=Microsoft.Msn.Hotmail.Ui.Fpp.MailBox". + "&". + "mn=GetInboxData". +@@ -971,7 +984,7 @@ sub GetMessagesFromFolder($) { + "v=1". + "&". + "mt=$MT"; +- } else { ++ } elsif ($Mode =~ m/200809/) { + $PostData = "cn=Microsoft.Msn.Hotmail.Ui.Fpp.MailBox". + "&". + "mn=GetInboxData". +@@ -979,11 +992,37 @@ sub GetMessagesFromFolder($) { + "d=true,true,{".uri_escape("\"$FolderId\"").",25,NextPage,0,Date,false,". + uri_escape("\"$pnAm\"") . "," . + uri_escape("\"$pnAd\"") . "," . +- "$Page,2,false,null,false,$ReportedNrMessages},false,null". ++ "$Page,2,false,null,false,$ReportedNrMessages},false,null". + "&". + "v=1". + "&". + "mt=$MT"; ++ } elsif ($Mode =~ m/200810/ && $Page == 1) { ++ $PostData = "cn=Microsoft.Msn.Hotmail.Ui.Fpp.MailBox". ++ "&". ++ "mn=GetInboxData". ++ "&". ++ "d=true,true,{".uri_escape("\"$FolderId\"").",0,0,Date,false,". ++ uri_escape("\"$pnAm\"") . "," . ++ uri_escape("\"$pnAd\"") . "," . ++ "$Page,2,false,%22%22,0,-1,Off},false,null". ++ "&". ++ "v=1". ++ "&". ++ "mt=$MT"; ++ } elsif ($Mode =~ m/200810/) { ++ $PostData = "cn=Microsoft.Msn.Hotmail.Ui.Fpp.MailBox". ++ "&". ++ "mn=GetInboxData". ++ "&". ++ "d=true,true,{".uri_escape("\"$FolderId\"").",NextPage,0,Date,false,". ++ uri_escape("\"$pnAm\"") . "," . ++ uri_escape("\"$pnAd\"") . "," . ++ "$Page,2,false,%22%22,$ReportedNrMessages,-1,Off},false,null". ++ "&". ++ "v=1". ++ "&". ++ "mt=$MT"; + } + + ($PageAsString,$GetPageUrl) = GetPage(Url => $Url,CurlDataArg => $PostData); +@@ -1003,8 +1042,9 @@ sub GetMessagesFromFolder($) { + + # get the ID for the trash folder + $TrashFolderId = $PageAsString; +- $TrashFolderId =~ m/sysFldrs\s*?:\s*?{\s*?trashFid\s*?:\s*?\"(.*?)\".*?}/si; ++ $TrashFolderId =~ m/sysFldrs\s*?:\s*?{.*?trashFid\s*?:\s*?\"(.*?)\".*?}/si; + $TrashFolderId = $1; ++ die "Could not find TrashFolderId." unless $TrashFolderId; + + # get the session variables as well as the request handler + $PageAsString =~ m/fppCfg\s*?:\s*?{\s*?RequestHandler\s*?:\s*?\"(.*?)\".*?SessionId\s*?:\s*?\"(.*?)\".*?AuthUser\s*?:\s*?\"(.*?)\".*?}/si; +@@ -1016,9 +1056,12 @@ sub GetMessagesFromFolder($) { + + # To start with we limit us to a MessagesArea between + #