Блог пользователя gnull

Автор gnull, 10 лет назад, По-русски

text

Всем привет! Я написал скрипт на emacs lisp, который умеет:

  • Отправлять решения
  • Загружать тесты
  • Входить по логину/паролю
  • Хранить куки между запусками

Все запросы делаются через curl, и ответы обрабатываются руками. ссылка.

Установка

  • Скачать скрипт.
  • Добавить в свой файл ~/.emacs код:
(add-to-list 'load-path "/папка/со/скриптом/")
(load "cf-keys.el")

Использование

  • C-c i — Вход
  • C-c o — Выход
  • C-c w — Узнать текущий хэндл
  • C-c s — Отправить открытый файл
  • C-c d — Загрузить тесты в текущую папку

Функции отправки и загрузки тестов "угадывают" номер контеста,задачу и язык программирования по имени открытого файла, понимают в таком виде:

  • directory/505/A/myfile.cpp
  • directory/505/a.c
  • directory/505a.cc

Настройка

В своем файле ~/.emacs можно изменить значения по умолчанию для переменнных:

  • cf-default-language — Язык по умолчанию. Одно из значений, определенных в файле cf-languages.el
  • cf-host — "codeforces.ru" или "codeforces.com"
  • cf-cookies-file — Файл, в котором curl будет хранить куки

Пример: (setq cf-cookies-file "/home/vasya/my_codeforces_cookies")

Комбинации клавиш можно поменять в конце файла cf-keys.el.

  • Проголосовать: нравится
  • +42
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I've did what you wrote here in emacs everything seems all right (i.e. login, logout, downloading tests, current handle) except that submitting current file don't work, it also gives me submit success.

I'd be thankful if you'd help me :)

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    What problem have you been trying to submit? Can I see the source? What is the path to your file?

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      i was submitting problem 540E, the path was 540/E.cpp, what do you mean by source?

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        I mean the source code of solution you failed to submit. There can be some characters that I forgot to escape when passing to curl.

        • »
          »
          »
          »
          »
          9 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          it's the same as this submission i was trying the parser for first time then. Do it work with you nowdays ? Have you tried submitting any solution with it about this week ?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    It turns out that when you submit your solution, codeforces redirects you to the page with warning on using "%lld". Please, use "%I64d") Actually, the message "submit: ok" means that curl was successfully executed, there is no guarantee that the soluton is submitted. There is a lot to fix in the script.