Expand Cut Tags

No cut tags
danielzorin: (Квадрат)
[personal profile] danielzorin
Я очистил журнал от старых записей, все они отправились в архив и видны только мне. Мой недотвиттер по-прежнему находится здесь, а тут время от времени будут появляться упражнения в красноречии и всякие разные фотографии.

Оказалось, что массово редактировать посты в новом интерфейсе ЖЖ теперь можно, но только на платном аккаунте. С ходу я не нашел готового решения, поэтому сам написал простенькую программу, которая применяет ко всем постам в ЖЖ одни и те же настройки видимости. Может быть, кому-нибудь когда-нибудь пригодится.







#coding=utf-8
from mechanize import Browser

firefox = Browser()
firefox.set_handle_robots(False)
# Старый добрый набор хедеров, которые я использовал еще в далеком 2008 году когда впервые научился пользоваться mechanize
# Имя переменной firefox тоже осталось с тех времен, сейчас я пользуюсь Chrome
firefox.addheaders[:0] = [["User-agent", "Mozilla/5.0(X11; U; Linux i686; en-US; rv:1.9) Gecko/2008062113 Iceweasel/3.0 (Debian-3.0~rc2-1) "]]
firefox.open("http://livejournal.com/")
firefox.select_form(nr=0)
# Имя пользователя
username = "juan_sin_tierra"
firefox["user"] = username
# Сюда вписать пароль
firefox["password"] = ""
resp = firefox.submit()
i = 0
while True:
    print i
    resp = firefox.open("http://www.livejournal.com/editjournal.bml?skip=" + str(i))
    txt = resp.read()
    found = False
    while True:
        # Тут я хотел сделать поиск по регулярному выражению, но меня заломало проставлять обратные слэши перед всеми спецсимволами в URL, поэтому тут просто поиск подстроки. 
        # Забота о производительности в скрипте из 50 строк - не наш метод
        index = txt.find("http://www.livejournal.com/editjournal.bml?usejournal=" + username + "&itemid=")
        if index == -1:
            break
        found = True
        index2 = txt[index:].find("'")
        link = txt[index:index + index2]
        firefox.open(link)
        firefox.select_form(nr=0)
        # Сюда вписать нужную настройку видимости, названия см. в исходном коде страницы редактирования
        firefox["security"] = ["private"]
        # Да-да, это быдлокод и он не будет работать, если в настройках сайта стоит не русский язык
        firefox.submit(name="action:save", label="Сохранить запись")
        print link
        txt = txt[index + index2:]
    if not found:
        break
    i += 20




This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

danielzorin: (Default)
Daniel A. Zorin

March 2024

S M T W T F S
      12
3 45 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Page generated Dec. 24th, 2025 05:42 am
Powered by Dreamwidth Studios