<< В начало

формат, прощай ЖЖ

Новости

11.10.2007 1 год, 2 месяца назад

Раз уж я переехал на standalone из ЖЖ с переносом записей, то надо как-то определиться с форматом блога. Пусть это будет что-то около веб разработок с минимум lifestyle. Дневник в ЖЖ я благополучно прикончил, он как бы изжил сам себя. Кстати, выяснилось, что удалить все записи в ЖЖ имея бесплатный аккаунт не так то просто, а учитывая, что у меня их там накопилось около двух тысяч… Варианта было три - написать самому, удалять по одной записи ручками, или поискать информацию по этому поводу. Вроде как некоторые ЖЖ клиенты могут проделывать подобное, но поскольку я основное время провожу под Линуксом, мне они не светят. В итоге был найден Perl скрипт LJdel - вот он (быстро, полезно и познавательно). К сожалению не могу сейчас быстро разыскать блог автора, но поскольку автор указан в исходнике, то думаю, что это не страшно. Требуется установить предварительно из PECL LJ::Simple. Заодно потестирую подсветку кода в этом посте.

  1.  
  2. #!/usr/bin/perl
  3. # This code is provided under PUBLIC DOMAIN
  4. # (c) Dan Kruchinin 2007
  5. # this is a simple script that deletes all your lj entries
  6.  
  7. use strict;
  8. use LJ::Simple;
  9. use POSIX qw(strftime);
  10.  
  11. # ATTENTION!!! please change the folloeing information
  12. # to properly script working
  13. use constant LJ_USER   => "xxx"; # your username on lj-based site
  14. use constant LJ_PASSWD => "xxx"; # your password on lj-based site
  15. use constant LJ_SITE   => undef; # NOTE: if you want delete all entries from
  16.                                  # accaunt on the livejournal.com just leave
  17.                                  # this string without any changes
  18.                                  # but if it is other lj-based site replace
  19.                                  # undef by this site web-address
  20.  
  21. my (%entries, $subj, $time, @opt) = (undef, undef, undef, undef);
  22. my $lj = new LJ::Simple( # make connection
  23.     { user => LJ_USER,
  24.       pass => LJ_PASSWD,
  25.       site => undef  }
  26. );
  27.  
  28. $opt[0] = 50;
  29. $opt[1] = undef;
  30.  
  31. (defined $lj) or die "$0: Failed to login! ($LJ::Simple::error)\n";
  32.  
  33. # get last 50(maximum number) entries per cycle
  34. while($lj->GetEntries(\%entries, undef, "lastn", @opt) > 0) {
  35.     last if(%entries == undef); # leave main cycle if there no any entries
  36.     while(my ($entry_id, $entry_hash) = each(%entries)) {
  37.         # so, here you can add any entry handler
  38.         # in my case I just want do kill em all,
  39.         # so, if you don’t want to remove some entries
  40.         # or just want to copy some of them
  41.         # you can create array with entry ids that you want to save
  42.         # and copare current entry with all entries in this array.
  43.         $subj = $lj->GetSubject($entry_hash);
  44.         $time = $lj->GetDate($entry_hash);
  45.         print "Delete entry with id $entry_id and subject\n\t\"$subj\"\n"; # display id and sublect
  46.         # display subkect (yep this thing is very important information =))
  47.         printf("\toriginally dated: %s\n", strftime("%Y-%m-%d %H:%M:%S", localtime($time)));
  48.         # kill em, kill!
  49.         $lj->DeleteEntry($entry_id) or die "$0: Can’t remove entry! ($LJ::Simple::error)\n";
  50.         print "\t-> [DONE]\n\n";
  51.         $subj = $time = undef;
  52.     }
  53.    
  54.     %entries = undef;
  55. }
  56.  
  57. exit 0;
  58.  


Комментариев нет»

Нет комментариев


куку (введите антиспам код) сменить