worldenddominator (juan) wrote,
worldenddominator
juan

Category:

Flames of purgatory

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

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







#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






Оглавление | Телеграм | Instagram
Tags: programming
Subscribe

  • Бразилия: Витория

    Витория - столица редко посещаемого штата Эспириту-Санту. Я слетал туда на один день из Рио-де-Жанейро чисто чтобы посмотреть еще один штат.…

  • Бразилия: Парати

    Город Парати, внесенный в список Всемирного Наследия, находится на побережье примерно посередине между Рио-де-Жанейро и Сан-Паулу. До постройки…

  • Бразилия: Убатуба

    Убатуба - небольшой курортный город на побережье в штате Сан-Паулу. Как и по пути в Сантус, дорога в Убатубу включает резкий спуск к берегу моря.…

promo juan june 17, 11:00 6
Buy for 10 tokens
Этой весной я осуществил большую поездку в Бразилию - самую большую страну Южной Америки и одну из крупнейших в мире. Эта страна несомненно заслуживает подробного изучения, как Россия, Китай, Индия или США, поэтому я доволен тем, что смог основательно по ней поездить, даже несмотря на то, что…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments