Coder Social home page Coder Social logo

joonas-yoon / boj-extended Goto Github PK

View Code? Open in Web Editor NEW
113.0 5.0 20.0 91.95 MB

백준 온라인 저지(BOJ)를 확장된 기능과 함께 사용해보세요. 기능 요청과 버그 제보는 언제나 환영합니다.

Home Page: https://chrome.google.com/webstore/detail/boj-extended/mfcaadoifdifdnigjmfbekjbhehibfel

License: MIT License

CSS 36.41% JavaScript 43.60% Python 1.22% HTML 18.59% Shell 0.18%
chrome-extension boj algorithm chrome problem-solving

boj-extended's People

Contributors

commentlee avatar getcurrentthread avatar joo-na avatar joonas-yoon avatar star0202 avatar tuna1210 avatar vertextoedge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

boj-extended's Issues

문제 타이머

타이머 걸어놓고 문제 풀기

실용성이 있을지는 의문

몇 퍼센트에서 틀렸는 지 표시

미리보기

2108094
2108093

채점 중인 것이 종료된 경우에만 표시된다. (즉, 새로고침하면 사라짐)
일회성이 강하다고 판단하여, 모든 결과를 저장하기엔 불필요하다고 생각함.

아이디어 제공
Thanks to @zinccccc

문제 검색 시 해결한 문제인지 표시하는 기능

내용

백준에서 문제 검색을 할 시 이 문제를 풀었는지 안풀었는지 확인할 수 있는 기능
문제 이름 옆에 [해결함] 등이 표시되는 기능이 있으면 좋을 것 같습니다.
https://www.acmicpc.net/search#q=&c=Problems

백준에서 문제 검색을 했을 때, 이 문제가 내가 푼 문제인지 아직 안푼 문제인지 긴가민가하여 문제에 들어가서 확인해보는 일이 많아 이 기능의 필요성을 느꼈습니다.

문제 제목 동기화

새로 추가된 문제의 경우, db.js의 업데이트가 비동기적으로 이루어지고 있어서 제목이 undefined로 나타날 수 있다.

빠른 속도를 위해 db.js에서 1차적으로 불러오고, 이름이 없는 경우에는 raw data에서 불러오도록 하기

다크 모드 자동 감지

내용

'밝은 테마', '어두운 테마' 외에 '자동'을 추가하여 시스템 설정을 따르는 기능

https://stackoverflow.com/a/57795518

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
    const newColorScheme = e.matches ? "dark" : "light";
});

chrome.storage 최적화

chrome.storage.sync를 바로 사용하지 않고, localStorage를 최대한으로 사용한 다음 idle 타임에 synchronous 하도록 변경하기

설정 기본값 수정

내용

결과 바꾸기 의 기본값을 사용함 으로 변경하기

이유

컴퓨터 옮기면 자꾸 꺼져있는데 불편함

🚨크롬 웹스토어 게시 문제 안내💦

1.4.2 버전을 배포하는 중에 버튼을 잘못 눌러서 1.4.1 버전의 게시가 취소되었습니다..

곧 새로운 버전이 올라가면 다시 목록에 표시될 예정입니다.

불편을 드려 죄송합니다 😞

빠른 검색에 탭 추가

내용

지금은 문제만 검색되는데, 검색 페이지(/search)처럼 여러 탭으로 확인할 수 있도록 기능 추가

이미지 색상반전기능 추가를 건의드립니다

👋 안녕하세요! ✨새로운 기능 요청✨에 무척 반가운 마음입니다.

내용

#problem-body img:not(.level_badge) {
filter: invert(85%) hue-rotate(-180deg) brightness(125%) contrast(85%) !important;
transition: 0.3s;
}

#problem-body img:not(.level_badge):hover {
filter: none;
transition: 0.3s;
}

이런식으로 태그를 넣어서 , 흰색 이미지일 경우 반전시키고 마우스를 올리면 다시 보이도록 처리해도 좋을것같습니다

제출 코드 작성란 버그

image

백준 설정에서 선택한 Lucario 테마 사용 + boj extend 다크모드 사용하면
제출란이나 코드 보기란에서 코드의 라인이 매겨지는곳과, 테두리가 저렇게 하늘색으로 붕 뜹니다.
결국 코드의 라인 넘버도 안보입니다.

기본 크기 옵션 선택시 여백이 없어집니다.

내용

기본 크기 옵션일 때 창 너비를 좁게 만들면 양쪽 여백이 없습니다. 근데 넓게 보기 옵션일 때는 정상적으로 여백이 있습니다.

환경

Chrome 93.0.4577.82 (arm64)

오류 메시지 또는 스크린샷

  • 기본 크기
    image
  • 넓은 크기일 때 ( or 확장프로그램 비활성화 시)
    image

어두운 테마에서 부분 점수 색상

내용

유저 정보

  • 부분 성공은 색상 반영 안됨

채점 현황

  • 문제 제목에 색상 반영 안됨

오류 메시지 또는 스크린샷

/user/joonas 페이지
image
image

채점 현황
image
image

너비 관련 레이아웃 변경 시 딜레이

내용

테이블 컬럼의 너비를 변경할때, 매 페이지마다 로딩 후 <500m 정도 너비가 바뀌어 레이아웃이 흔들린다.

매 페이지 로딩마다 흔들리다보니 불편함

단축키(Hot key)

내용

가끔 제출창에 바로 코딩할때가 있는데, alt + enter 하면 제출되면 좋겠다.

🚨 1.7.0 버전에서 로그인 이후 문제 해결 표시 버그

내용

  • #54 구현 커밋 (1caeab3) 과 연결된 모든 페이지에서 에러 발생
    • 로그인한 경우에만 발생
VM1366:1 Uncaught (in promise) SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at fetchProblemsByUser (utils.js:1)
    at async extendNotificationsPage (notifications.js:1)

잘못된 형태의 JSON가 저장되고 있거나, 없는 경우의 처리가 빠졌을 가능성으로 보임

1~2일 내로 수정 예정

채점 현황에서 커스텀 결과 적용 안됨

내용

제출 현황의 결과 텍스트를 바꾸는 기능이 동작하지 않는다.
(아직도 기능을 짧게 부를 이름을 못 정함)

Observer 문제는 아닌 것 같고, UI의 변경이 있었는 지는 모르겠지만 갑자기 동작이 안 됨.

오류 메시지 또는 스크린샷

채점 텍스트 변경 하이퍼링크 및 total number 기능 지원

내용

image

  • subtask가 있는 문제거나 컴파일 에러가 난 경우 hyperlink 가 적용되며 눌러서 subtask 결과 및 컴파일 에러 이유를 볼 수 있는데, 텍스트를 변경하면 하이퍼링크가 활성화되지 않는듯 합니다.

  • :number: 로 숫자 placeholder 가 적용되어있는데 subtask 같은 경우 12/100 과 같이 전체 개수까지 표시가 되어야 하는데 이 부분은 어떻게 설정하는건지 잘 모르겠습니다.

잘 쓰고 있습니다 개발 감사드립니다.

재접속시 마지막으로 보고 있던 페이지로 이동

내용

메인 페이지(/)로 접속하면, 마지막으로 보았던 페이지로 이동할 지 물어보는 기능

시크릿 탭을 쓰는 입장으로 종종 생각나는 건데, 유용할 지는 써봐야 알 것 같다.
chrome/whale 한정으로 데이터를 계정으로 동기화할 수 있으니, 다른 PC에서도 보여줄 수 있을 것으로 예상.

스코어보드 폰트 색상

👋 안녕하세요! ✨새로운 기능 요청✨에 무척 반가운 마음입니다.

내용

image
글자가 하나도 안보입니다

푼 문제 비교 (vs) 기능

원래 /vs/user1/user2 링크로 있었던 기능인데, 오랜만에 즐겨찾기 링크로 들어가봤더니 사라졌다.

  1. 해당 경로로 접속하면 페이지 재구조화
  2. 유저 페이지에서 별도로 보이도록 수정

기능 추가하는 김에, 여러 명에 대해서도 되도록? (n명이면 n!가지 경우를 보여줄 순 없는데.. 고민해봐야할듯)

Chrome 외 브라우저 지원

지금까지 작성한 코드를 보면 크게 모던 브라우저들(Safari, Firefox, Opera 등)의 호환성은 거의 지켜진 것 같고,

babel로 컴파일해서 어렵진 않아 보이는데,

스토리지쪽에서 chrome.storage(크롬, 웨일) vs. broswer.storage(파폭, 사파리) 변수명 문제랑 Promise 등 이 부분을 어떻게 해야하나 고민 중...

사파리는 심지어 storage.sync를 지원안함. localStorage로 대체해야할듯

빠른 검색

검색 페이지 (/search) 로 안 들어가고, overlay 띄워서 빠르게 검색 결과 보기

🎨 테마 추천 받습니다

현재는 아래와 같이 2개의 테마만 있습니다.

  • 밝은 테마
  • 어두운 테마

한 번의 클릭으로 변경하는 것이 편해서 생각만 하고 추가하지는 않았는데, 2022년에는 테마를 여러 개 추가해볼까합니다.

원하는 테마가 있으시면 이 이슈에 댓글로 남겨주세요.
https://vimcolorschemes.com/ 와 같이 직접 색 조합을 확인할 수 있는 사이트가 있으면 도움이 됩니다.

감사합니다.

메모 작성 전체화면

내용

문제 > 메모 작성에서, 전체화면 시에는 미리 보기에 어두운 테마가 적용되지 않고 있음

db.json 불러오기 오류

내용

유저 프로필 페이지에서 빌드에 포함되지 않은 문제 정보를 원격 저장소의 db.json로부터 불러오지 않고 있다.

오류 메시지 또는 스크린샷

[warnings] Extension Compatibility Test for Firefox

내용

Firefox에서 호환되나, warnings 메시지가 많다.

오류 메시지 또는 스크린샷

{
  "compat": [],
  "errors": [],
  "warnings": [
    {
      "message": "\"content_security_policy\" allows remote code execution in manifest.json",
      "description": "A custom content_security_policy needs additional review.",
      "locations": [
        {
          "file": "manifest.json"
        }
      ]
    },
    {
      "message": "Unsafe assignment to innerHTML",
      "description": "Due to both security and performance concerns, this may not be set using dynamic values which have not been adequately sanitized. This can lead to security issues or fairly serious performance degradation.",
      "locations": [
        {
          "file": "js/group.js",
          "line": 1
        },
        {
          "file": "js/main.js",
          "line": 1
        },
        {
          "file": "js/main.js",
          "line": 1
        },
        {
          "file": "js/main.js",
          "line": 1
        },
        {
          "file": "js/vs.js",
          "line": 1
        },
        {
          "file": "options/option-timer.js",
          "line": 1
        },
        {
          "file": "options/option.js",
          "line": 1
        },
        {
          "file": "options/option.js",
          "line": 1
        },
        {
          "file": "js/user.js",
          "line": 1
        },
        {
          "file": "js/user.js",
          "line": 1
        }
      ]
    },
    {
      "message": "extension.getURL is deprecated",
      "description": "This API has been deprecated by Firefox.",
      "locations": [
        {
          "file": "js/utils.js",
          "line": 1
        },
        {
          "file": "js/utils.js",
          "line": 1
        }
      ]
    },
    {
      "message": "\"storage.sync\" can cause issues when loaded temporarily",
      "description": "This API can cause issues when loaded temporarily using about:debugging in Firefox unless you specify applications|browser_specific_settings > gecko > id in the manifest. Please see: https://mzl.la/2hizK4a for more.",
      "locations": [
        {
          "file": "js/background.js",
          "line": 1
        },
        {
          "file": "js/background.js",
          "line": 1
        }
      ]
    }
  ]
}

:number: 포맷 버그(부분 점수)

내용

image

  • :number: 로 숫자 placeholder 가 적용되어있는데 subtask 같은 경우 12/100 과 같이 전체 개수까지 표시가 되어야 하는데 이 부분은 어떻게 설정하는건지 잘 모르겠습니다.

image

설정을 해제하면 다음과 같이 subtask문제 잘 표시가 됩니다.
image

그리고 현재는 다음과 같이 설정하여 사용합니다.
image

감사합니다.

해당 이슈는 #35 에서 따로 분리되어 올려졌습니다.

도움말에 테마 적용

image

다크모드 사용시 도움말에도 다크모드가 지원되었으면 좋겠습니다.
문제 타이머에도 다크모드가 풀리네요

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.