Design by @imrahelk
안녕하세요. 안피곤입니다.
크롬 웹 스토어에는 해피베리보이(@happyberrysboy)님이 만드신 Steem Tools 앱이 있습니다. 제가 유용하게 잘 사용하고 있습니다. ㅋ
제가 여기에 기능을 추가하고 싶다는 의사를 전달하였습니다. 감격스럽게도 해피보이님께서 저를 일명 WS_TOOLS 앱의 커미터(Committer)로 채택해주셨습니다. 그래서 해피보이님과 협업으로 크롬 확장프로그램을 개발하고 있습니다. ㅋ
저는 크롬 확장 프로그램은 한번도 만들어 본적이 없습니다. 그래서 해피님의 도움과 구글 문서를 참고 하여 개발하였습니다.
manifest.json
파일에 content_scripts
를 추가합니다. content_scripts
를 사용하면 부모 페이지의 DOM에 접근할 수 있습니다.
manifest.json
...
"content_scripts": [
{
"matches": ["https://steemit.com/*"],
"run_at": "document_idle",
"js": ["jquery3.3.1.min.js", "content_script.js"],
"css": ["content_style.css"]
}
],
...
그리고 content_script.js
파일을 작성합니다. 이 파일에 카테고리 링크를 보여주는 HTML과 API 서버에서 글을 가져오는 로직을 구현합니다.
content_script.js
(async () => {
const GetPostsQuery = `query
GetPosts($tags: [String!]!) {
getPosts(
tags: $tags
) {
author
permlink
title
author_reputation
summary
tags
image
created
total_payout_value
curator_payout_value
pending_payout_value
vote_count
comment_count
}
}`;
function getPosts(tags=["kr"], start=0, limit=10) {
fetch(GRAPHQL_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
query: GetPostsQuery,
variables: { tags, start, limit },
})
})
.then(r => r.json())
.then(({ data }) => {
const posts = data.getPosts;
const postsDom = posts.map(post => {
return `<li>
<div class='articles__summary'>
(html comment removed: ... 코드가 너무 길어서 생략함 ... )
</div>
</li>`
});
$("#posts_list > ul").html(postsDom);
});
}
const cetegoryDom = $(`
<div>
<hr>
<center>
<a href="#" tags="">전체</a> |
<a href="#" tags="kr-life, life">일상</a> |
<a href="#" tags="kr-book, book, booksteem">도서</a> |
<a href="#" tags="kr-game, game">게임</a> |
<a href="#" tags="kr-dev, dev">코딩</a> |
<a href="#" tags="kr-art, art">예술</a> |
</center>
<hr>
</div>
`);
cetegoryDom.find('a').click(evt => {
const tags = evt.target.getAttribute('tags').split(',')
getPosts(tags);
})
$(".App__content").before(cetegoryDom);
})();
API 서버를 만드는 과정은 "Google App Engine + GraphQL으로 스팀잇 API 서버 만들기" 에서 소개하였습니다. 이 API 서버에서 각 분류에 해당하는 글을 가져옵니다. 데이터 가져오는 속도가 제 예상보다 빨랐습니다.
아래는 여기까지 작업한 화면입니다.
각 카테고리에 해당하는 링크를 클릭하면 관련 글을 몽땅 가져옵니다. 글의 분류는 글에 포함되어 있는 태그를 기준으로 분류하였습니다. 예를 들어 글의 태그에 #book, #kr-book, #booksteem 중 하나라도 포함되어 있으면 도서로 분류됩니다.
그리고 이걸 작업하고 나서 해피님께 최우수상을 받았습니다. 이 맛에 코딩하는 것 같습니다. ㅋ
참고로 상장은 원사마님이 디자인하였습니다.
모두 해피 코딩하세요~!
happyberrysboy님이 anpigon님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
happyberrysboy님의 [kr-dev] Steem Tools 전면 개편!!(크롬 확장프로그램)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@anpigon님 넘치는 사랑 감사합니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
곰돌이님의 넘치는 사랑 감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좋습니다^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
캄사합니다~!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
최우수상 축하드려요. 앞으로 활동 응원해요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
도리안님 감사합니다. 앞으로 더 열심히 할께요. ㅋㅋ
협업으로 개발하니 더 잼납니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오호!! 오늘은 안피곤~~~ ㅎㅎ
잘 만드셨네요^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
독거노인님 오늘도 안피곤입니다.ㅎㅎ
감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
생활코딩에서 구글확장 프로그램 만들기 강좌 보고 따라 해봤는데 예전에 은근 재미가 있었던 기억이 나네요.
딱히 만들게 없어서 연습삼아 만들어보고 말았는데 재밌는 것을 만드셨군요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
생활코딩에 강좌가 있군요. 저도 봐야겠습니다. ㅋ
그런데 만들고 보니 정말 재미있습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
대박! ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
대박 감사합니다.ㅎㅎ
제이콥님도 해피 코딩하세요.ㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오오 좋네요!
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
코딩은 언제나 재미있습니다. 글로리님 넥스콜리니는 여전히 재미있나요? 전 좀 하다가 말았네요. ㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
매우 장기적인 방치형 게임인듯... 가끔 들어가서 업글 눌러주시면 됩니다.
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
정말 방치형 개임이군요. 이오스 나이츠처럼 모바일로도 나왔으면 좋겠어요. ㅋㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @anpigon!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 2.359 which ranks you at #19342 across all Steem accounts.
Your rank has improved 599 places in the last three days (old rank 19941).
In our last Algorithmic Curation Round, consisting of 194 contributions, your post is ranked at #137.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이렇게 또 한 분의 능력자가 나타났네요^^
이런게 바로 탈 중앙화의 의미가 아닌가 싶습니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이런게 바로 탈중화가 가지고 있는 재미 중 하나입니다. ㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오오.....굿굿!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
뉴비존님 단톡방에 얼른 돌아오세요~ㅋㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
가고 싶어도 ㅠㅠㅠ 못가여 ㅠㅠ흨흨흨....5월 14일 11시 넘어서 봐요 ㅋㅋㅋㅋㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오호! 멋집니다!!!!
멋진 기능이 추가되었네요 ㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
앞으로 더 멋진 기능을 추가하려고 해피베리보이님과 계획 중입니다. 시간이 허락한다면 빠르게 진행하고 싶네요. ㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
와~~~ 대단하십니다. ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아낌없이 주는 나무 보팅하고갑니다^^
오늘의 링크 : https://steemit.com/kr/@best-live/7sioox-tree-bank
내용 : 아낌없이 주는 나무 상생 프로젝트 두번째인 tree-bank 제도를 알립니다:)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오 써봐야겠네요. 안그래도 얼마전에 Keychain수정하면서 처음으로 chrome extenstion 코드가 대충 이렇게 되는구나 살펴봤네요. 근데 필요한 부분만 찾아서 수정한거라 여전히 잘 모름ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
chrome extenstion 는 저도 처음 개발해보았습니다. 그런데 제대로된 앱을 구현하려니 학습이 많이 필요합니다. ㅠ 그리고 원하는 기능을 구현하려니 한계점도 있고.. 아마도 제가 하려는 기능은 별도 페이지로 개발해야 할것 같습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit