Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oj login command failing for codeforces.com #905

Open
nalinabrol opened this issue Oct 17, 2021 · 3 comments
Open

oj login command failing for codeforces.com #905

nalinabrol opened this issue Oct 17, 2021 · 3 comments
Labels

Comments

@nalinabrol
Copy link

Summary / 概要

Login to codeforces is failing unexpectedally. I had the library installed on my local for about an year but suddenly when i tried to create new cookie file, it was failing at login

Steps to reproduce / 再現方法

  1. oj login https://codeforces.com

environments:

  • version: online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.0)

Expected behavior / 期待される挙動

Should login and create cookie file

Actual behavior / 実際の挙動

oj login https://codeforces.com                                                                                                                                             ─╯
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.0)
[INFO] load cookie from: /Users/vibhorabrol/Library/Application Support/online-judge-tools/cookie.jar
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
[FAILURE] You are not signed in.
[ERROR] Selenium is not installed. Please run $ pip3 install selenium
[WARNING] Switch to use CUI-based login instead of Selenium
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
Username: kkg59
Password:
[ERROR]
Traceback (most recent call last):
  File "/Users/vibhorabrol/venv/academy-env/lib/python3.9/site-packages/onlinejudge_command/subcommand/login.py", line 195, in run
    login_with_password(service, username=args.username, password=args.password, session=session)
  File "/Users/vibhorabrol/venv/academy-env/lib/python3.9/site-packages/onlinejudge_command/subcommand/login.py", line 49, in login_with_password
    service.login(get_credentials=get_credentials, session=session)
  File "/Users/vibhorabrol/venv/academy-env/lib/python3.9/site-packages/onlinejudge/service/codeforces.py", line 46, in login
    form = utils.FormSender(form, url=resp.url)
  File "/Users/vibhorabrol/venv/academy-env/lib/python3.9/site-packages/onlinejudge/_implementation/utils.py", line 77, in __init__
    assert isinstance(form, bs4.Tag)
AssertionError

Other notes / その他

  • Will you try to create a pull request?
    • yes / no
@koba-e964 koba-e964 added the bug label Aug 9, 2022
@koba-e964
Copy link
Member

Sorry, I couldn't reproduce this issue. Does this issue persist?

@CroMarmot
Copy link

Same issue, without selenium reproduced in docker

docker run -it --rm ubuntu /bin/bash
apt update
apt install python3 python3-pip
pip3 install online-judge-tools
oj login https://codeforces.com/
[INFO] GET: https://pypi.org/pypi/online-judge-tools/json
[INFO] 200 OK
[WARNING] failed to load the cache in update checking: 'online-judge-api-client'
[INFO] GET: https://pypi.org/pypi/online-judge-api-client/json
[INFO] 200 OK
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
[FAILURE] You are not signed in.
[ERROR] Selenium is not installed. Please run $ pip3 install selenium
[WARNING] Switch to use CUI-based login instead of Selenium
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
Username: Cro-Marmot
Password: 
[ERROR] 
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/onlinejudge_command/subcommand/login.py", line 195, in run
    login_with_password(service, username=args.username, password=args.password, session=session)
  File "/usr/local/lib/python3.10/dist-packages/onlinejudge_command/subcommand/login.py", line 49, in login_with_password
    service.login(get_credentials=get_credentials, session=session)
  File "/usr/local/lib/python3.10/dist-packages/onlinejudge/service/codeforces.py", line 46, in login
    form = utils.FormSender(form, url=resp.url)
  File "/usr/local/lib/python3.10/dist-packages/onlinejudge/_implementation/utils.py", line 80, in __init__
    assert isinstance(form, bs4.Tag)
AssertionError
[INFO] save cookie to: /root/.local/share/online-judge-tools/cookie.jar

env:

docker image ls
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
ubuntu                     latest    2dc39ba059dc   3 months ago   77.8MB
docker inspect ubuntu:latest 
[
    {
        "Id": "sha256:2dc39ba059dcd42ade30aae30147b5692777ba9ff0779a62ad93a74de02e3e1f",
        "RepoTags": [
            "ubuntu:latest"
        ],
        "RepoDigests": [
            "ubuntu@sha256:20fa2d7bb4de7723f542be5923b06c4d704370f0390e4ae9e1c833c8785644c1"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2022-09-01T23:46:35.375057619Z",
        "Container": "b0df58d0a952d2cb3b35163ac557fe1886c0fe5cf73a82a16491a22089aadb8c",
        "ContainerConfig": {
            "Hostname": "b0df58d0a952",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"bash\"]"
            ],
            "Image": "sha256:1f88c721b49061df8bcee6398193b3642df4f089f9343e138302473c3d58fc06",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "20.10.12",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "bash"
            ],
            "Image": "sha256:1f88c721b49061df8bcee6398193b3642df4f089f9343e138302473c3d58fc06",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 77834333,
        "VirtualSize": 77834333,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/data/docker/overlay2/ace09cb7a1fa5c4bae12423ea2f20c2e6a15cf69cec08bf0028379df3083ed04/merged",
                "UpperDir": "/data/docker/overlay2/ace09cb7a1fa5c4bae12423ea2f20c2e6a15cf69cec08bf0028379df3083ed04/diff",
                "WorkDir": "/data/docker/overlay2/ace09cb7a1fa5c4bae12423ea2f20c2e6a15cf69cec08bf0028379df3083ed04/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:7f5cbd8cc787c8d628630756bcc7240e6c96b876c2882e6fc980a8b60cdfa274"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

but if i installed Selenium with pip3 install selenium . It is working as expected.


With Selenium, although the selenium can login, but cookies looks not working

2022-12-25 09:23:29

oj login https://codeforces.com/contest/1763/problem/A
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
[INFO] load cookie from: /home/cromarmot/.local/share/online-judge-tools/cookie.jar
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
[FAILURE] You are not signed in.
[INFO] Trying to open Chrome via WebDriver...
[INFO] Opening the URL via WebDriver: https://codeforces.com/enter
[INFO] Please do the followings:
    1. login in the GUI browser
    2. close the GUI browser
[INFO] Copying cookies via WebDriver...
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 302 Found
[SUCCESS] You have already signed in.
[INFO] save cookie to: /home/cromarmot/.local/share/online-judge-tools/cookie.jar

2022-12-25 09:24:02

oj submit https://codeforces.com/contest/1763/problem/A Main.cpp 
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
[INFO] code (460 byte):
#include_<bits/stdc++.h>
using_namespace_std;

typedef_long_long_ll;
#define_rep(i,a,n)_for_(ll_i=a;i<(ll)n;i++)

ll_read(){ll_r;scanf("%lld",&r);return_r;}

void_w(){
__int_n_=_read();
... (10 lines) ...
__}
__printf("%d\n",ans);
}

int_main(){
__int_t_=_read();
__while(t--)_w();
__return_0;
}


[INFO] load cookie from: /home/cromarmot/.local/share/online-judge-tools/cookie.jar
[NETWORK] GET: https://codeforces.com/enter
[NETWORK] 200 OK
[ERROR] You are not logged in. Please run $ oj login https://codeforces.com/contest/1763/problem/A
[INFO] save cookie to: /home/cromarmot/.local/share/online-judge-tools/cookie.jar

@CroMarmot
Copy link

I think codeforces must change some config in it's server. I tried oj login https://codeforces.com/contest/1763/problem/A just now( 2022-12-31 12:59:30 )with the cookies.jar created in above(12-25), it works properly. It is very weird

I think if the server change again, this issue should be still can reproduce, but now the oj working properly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants