Всем привет! Я написал скрипт на 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
.
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 :)
What problem have you been trying to submit? Can I see the source? What is the path to your file?
i was submitting problem 540E, the path was 540/E.cpp, what do you mean by source?
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.
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 ?
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.