뉴스 사이트 기사 페이지에 접속하면 뉴스 본문외의 정보를 전부 제거한 뒤 페이지를 재구성하는 스크립트입니다.
모든 주요 웹브라우저(인터넷 익스플로러 제외)에 대해 최신 안정버전으로부터 한버전 전까지만 지원합니다.
just-news는 뉴스 기사 페이지에서 작동되는 유저스크립트이며, 자동으로 실행되기 위해서는 유저스크립트 플러그인의 도움이 필요합니다.
유저스크립트 플러그인은 여러 종류가 있지만 just-news는 Tampermonkey 사용을 권장합니다. Tampermonkey는 크롬, 파이어폭스, 엣지, 사파리, 오페라 등의 웹브라우저를 지원합니다.
Tampermonkey 외에도 Greasemonkey, Violentmonkey, NinjaKit 등의 유저스크립트 플러그인이 있습니다.
유저스크립트 플러그인이 설치됐다면 위 링크를 클릭하면 자동으로 just-news 설치창이 뜹니다.
just-news는 github issue tracker를 사용합니다. 이슈는 https://github.com/disjukr/just-news/issues 로 제보해주시기 바랍니다.
- 구현하고 싶은 뉴스 사이트를 정합니다.
- 뉴스 사이트가 하단의 지원 사이트 목록에 체크되어있지 않은지 확인합니다.
- 목록에 사이트가 없으면 추가합니다.
- 구현합니다.
src/sites.ts
에 뉴스사 이름을 키로 갖는, 주소 패턴 목록을 추가합니다.src/impl
경로에article
객체를 반환하는parse
함수를 담은 모듈을 작성합니다.- 모듈 이름은 뉴스사 이름으로 합니다.
- 비동기로 작동해야할 경우
Promise
객체를 반환하면 됩니다. - 특정 뉴스기사에서만 작동하는 코드의 경우 해당 뉴스기사 url을 주석으로 적어주세요.
- 지원 사이트 목록에 구현한 항목을 체크하고 Pull Request를 보냅니다.
이 프로젝트는 webpack을 사용하여 just-news.user.js
파일을 빌드합니다.
빌드를 하기 위해 다음의 절차를 따라야 합니다:
- nodejs를 설치합니다.
npm install
명령을 실행합니다.npm run build
명령을 실행합니다.npm run build
명령은 minify된 결과물을 주기 때문에 처리가 너무 오래걸릴 수 있습니다. 빠르게 개발용 빌드를 얻고싶다면npm run build:dev
명령을 사용하면 됩니다.
- 저장소의
dist
폴더로 가면 빌드된just-news.user.js
파일을 확인할 수 있습니다.
Tampermonkey 등의 유저스크립트 플러그인을 사용하면
*.user.js
꼴의 주소로 들어갈 때 자동으로 재설치 화면을 띄워줍니다.
따라서 저장소 디렉토리에 http 서버를 띄워놓고, 소스코드 빌드 후
브라우저 탭을 열고 http://localhost:<포트>/dist/just-news.user.js
주소로 들어가면
방금 빌드한 just-news
를 재설치하는 화면이 뜹니다.
업그레이드
또는 재설치
버튼을 눌러주면 됩니다.
http 서버는 다음과 같이 띄울 수 있습니다:
$ npx http-server -p <포트>
- 특정 환경에서만 발생하는 버그는 제보시에 특정 환경(웹브라우저/OS 등)을 명시해주세요.
- 특정 뉴스사이트나 기사 페이지에서만 발생하는 버그 역시 제보시에 링크를 명시해주세요.
article
객체는src/index.ts
에 정의된Article
인터페이스를 따르도록 합니다.- 뉴스 페이지에서 해당하는 정보가 없을 경우
null
값을 채워 넣습니다.
- 뉴스 페이지에서 해당하는 정보가 없을 경우
- 릴리즈는 사람이 직접 할 필요가 없습니다. travis ci를 통해 jews-bot 계정이 자동으로 처리합니다.
몇몇 뉴스 사이트들은 사이트 재구성 뒤에도 광고가 남아있을 수 있습니다.
재구성을 했는데도 남는 광고들은 cleanup
함수를 사용하여 털어내도록 합시다.
예시)
// 주의: iframe을 없애는게 대부분의 광고를 쉽게 없애버릴 수 있는 방법이긴 하지만
// 유투브 영상등을 포함한 뉴스기사의 경우, 단순히 iframe을 잡아서 날리면
// 실제 기사 내용이 사라지는 문제가 발생할 수 있습니다.
export const cleanup = () => $('#scrollDiv, iframe').remove();
cleanup
함수는 사이트 재구성이 일어난 뒤, 1초 주기로 매 번 호출됩니다.
- ITWORLD
- JTBC
- KBS
- KBS World
- MBC
- MBN
- OSEN
- SBS
- YTN
- 경향신문
- 국민일보
- 나우뉴스
- 네이버뉴스
- 네이트뉴스
- 노컷뉴스
- 뉴데일리
- 뉴데일리경제
- 뉴스1
- 뉴시스
- 다음뉴스
- 데일리시큐
- 데일리안
- 데일리한국
- 동아일보
- 디스패치
- 디지털타임스
- 로이터
- 마이데일리
- 매일경제
- 머니투데이
- 문화일보
- 미디어스
- 미디어오늘
- 민중의소리
- 뷰스앤뉴스
- 블로터닷넷
- 서울경제
- 서울신문
- 세계일보
- 스포츠경향
- 스포츠동아
- 스포츠서울
- 스포츠조선
- 스포탈코리아
- 시사IN Live
- 아시아경제
- 아시아투데이
- 아이뉴스24
- 여성뉴스
- 연합뉴스
- 오마이뉴스
- 월스트리트저널
- 이데일리
- 일간스포츠
- 전자신문
- 조선비즈
- 조선일보
- 중앙데일리
- 중앙일보
- 지디넷코리아
- 지지통신
- 코리아타임스
- 코리아헤럴드
- 파이낸셜뉴스
- 프레시안
- 한겨레
- 한국경제
- 한국경제TV
- 한국일보
- 허핑턴포스트
- 헤럴드경제