mathhater / boj-random-defense

BOJ Random Defense는 랜덤한 문제를 제한 시간 안에 풀고 본인의 레이팅을 확인할 수 있는 크롬 확장 프로그램입니다.
https://boj-random-defense.vercel.app/about
2 stars 1 forks source link

solved ac 서버가 좋지 않은 경우 처리 방식 추가 #6

Open mathhater opened 4 months ago

mathhater commented 4 months ago
  1. 이용자가 많지 않으니 대충 Solve 요청이 왔을 때, solved.ac 서버가 메롱이면 다른 테이블에 생성되어야 할 로그를 저장해놓고 나중에 일괄로 처리하기

  2. 코드포스 롤백마냥 유저의 레이팅을 문제가 생긴 지점부터 계산한 후 로그 삭제 및 복구하기

mathhater commented 3 months ago

백준 서버가 좋지 않으면 채점큐가 밀려서 solvedac API로 맞았는지 여부를 체크할 수가 없음 -> 이 경우에도 처리 방식이 필요함

mathhater commented 3 months ago

solvedac의 유저 history 페이지의 푼 문제수 통계에서 시간이 표시되지만, 백준에서 맞았습니다! 판정이후에 기록됨 -> 제한 시간 내에 풀었는지 알기 어려움

boj 사이트 크롤링도 생각해봤지만, robots,txt에서 철저히 막고 있고 백준 내에서도 크롤링 방지 대책이 존재하는 것 같아 포기

Chrome 확장 프로그램이 WebRequest API를 이용해 Network 탭의 데이터를 읽고 처리할 수 있다고 하니, 이 방향으로 조사해보기 -> 만약 가능하다면, Freeze 버튼을 추가해서 처리되지 않은 문제 큐를 채워넣고, 확장 프로그램 내에서 처리할 수 있을 듯 Network body 값은 못 읽어서 폐기