2017-10-12 1 views
0

저는 중간 크기의 스트리머로서 최근 StreamLabs에서 충성도 시스템을 선택했습니다. 여기에는 각 사용자가 스트림에있는 동안 누적 한 포인트가 포함되어 있습니다. 그러나 필자는 자체 JavaScript를 사용하여 포인트 시스템을 사용자 정의하고 새로운 기능을 추가 할 수 없으므로 StreamLabs 시스템과 함께 다른 오픈 소스 트 위치 봇 (Phantombot)을 사용하려고합니다. 내 시청자는 StreamLabs 오버레이에 너무 붙어있어서 순수한 Phantombot 경로로 이동할 수 없습니다.스 트리머 w. ~ 5k 추종자. JS를 사용하여 테이블에서 데이터를 긁어 모으려고합니까?

저는 1,000 명이 넘는 사용자가 있으며, 모두 자신의 점수를 이전해야합니다. StreamLabs는 포인트 값을 가진 사용자가 포함 된 Excel 문서를 내보내는 명확한 방법을 제공하지 않습니다. 나는 모든 포인트를 나열하는 페이지를 검사, 그것은 다음과 같이 구성되어있다 : 여기

<tbody> 
<tr> 
    <td class="table_name"> String </td> <!-- The name of the user --> 
    <td class="table__message"> Number </td> <!-- The user's amount of points --> 
    <td class="table__controls"> 
     <div class="pane-dropdown"> 
      <a class="pane-dropdown__toggle"> <!-- The cog opens the dropdown list --> 
       <span> 
        <i class="fa fa-cog"> <!-- There she is. --> 
         ::before 
        </i> 
       </span> 
      </a> 
      <div class="pane-dropdown__menu" style="display: none;"> 
       <span> 
        <ul class="pane-dropdown__list"> 
         <li> 
          <a class="pane-dropdown__link">Edit Points</a> 
         <li> 
         <li> 
          <a class="pane-dropdown__link warn">Block User</a> 
         </li> 
         <li> 
          <a class="pane-dropdown__link warn">Reset Points</a> 
         </li> 
        </ul> 
       </span> 
      </div> 
     </div> 
    </td> 
</tr> 
<!-- More table rows for each user --> 

페이지가 어떻게 생겼는지에 대한 링크입니다 :

https://imgur.com/JSBFHYi

있는 방법에 대한 있는가 각 페이지를 순환하고, 각 사용자의 포인트를 가져 와서 정보를 Excel과 같은 의미있는 형식으로 저장합니까?

나는 내가 주로 가르쳤던 기본 JavaScript를 잘 알고 있으며, 직관력이 뛰어나다. 그러나 이와 같은 프로젝트는 완전히 내 스킬 셋 이상이다. 나는 for 루프를 사용하여 각 사용자에 대한 객체를 배열에 푸시하고 점에 대한 속성과 이름에 대한 속성을 사용하고이 두 속성을 모두 .csv 문서로 내보내는 방법을 생각해 보았습니다. 그러나, 나는 그것을 할 수있는 방법을 모르거나 심지어 그것이 가능하다면 (그러나 그것이 아이스 캔디라면 가능하다.) 그래서 나는 그것이 가능하다고 생각한다. 올바른 방향으로 나아가는 것은 매우 감사 할 것입니다. 어떤 지침 -

내 생각은 스크립트를 생성 할 때, 클래스가 TABLE_NAME 및 table__message 시작하기에 좋은 장소가 될 수도있다? 모든 TR의를 반복하고, 자신의 제 1 및 제 2 어린이 값을 얻을 수 browserside에

+2

모두가 JS가 ... 우리가 간단한 브라우저의 스크립트 또는 전문 서버 측 (nodejs) fetchings에 대해 얘기하는 겁니까 가능합니다 자세한 내용은 Streamlabs API Documentation on Points를 참조하십시오? –

+2

StreamLabs API를 확인하셨습니까? https://dev.streamlabs.com – Nope

+0

@Fran streamlabs API는 정말 꽤 제한을 넘어 것을, 기부 경고 외에 많은 것을 제공하지 않습니다와 나는 그들이 나를 위해 작성하지 않은 포인트 시스템에 아무것도 할 수 없습니다 그들 자신 – Streamer

답변

0

는 :

const result = 
[...document.getElementsByTagName("tr")] 
.map(el => [ el.children[0].textContent, el.children[1].textContent ]) 
1

Streamlabs API는 포인트와 상호 작용하는 여러 가지 옵션이 보인다.

[ 
    { 
    username: "sunny601", 
    points: 94 
    }, 
    { 
    username: "sunny602", 
    points: 103 
    } 
] 
:

var data = JSON.stringify(false); 

var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 

xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === this.DONE) { 
    console.log(this.responseText); 
    } 
}); 

xhr.open("GET", "https://streamlabs.com/api/v1.0/points/group_get_points?access_token=access_token&channel=channel&usernames=usernames"); 

xhr.send(data); 

이 자신의 포인트와 유사한이에있는 사용자의 배열 발생한다 :

의 예를 통해 보면, "그룹이 포인트를 얻을"당신이 찾고있는 무슨 수 있습니다

+0

굉장! 질문 -이 스크립트를 실행하려면 무엇을 사용해야합니까? 브라우저 확장 기능이 있습니다. 맞습니까? 당신이 권하는 것이 있습니까? 또한 이것을 Excel 문서로 내보내는 방법에 대한 통찰력이 있습니까? 감사!!! – Streamer

+0

API를 직접 사용하지는 않았지만 JSON을 CSV로 저장하는 방법에 대한 빠른 검색을 통해 Excel에서 열 수 있습니다. http://jsfiddle.net/hybrid13i/JXrwM/ - 로그 JS 파일을 참조하면서 단일 버튼이있는 사용자 정의 HTML 페이지에서 로컬로 실행할 수 있습니다. 또는 NodeJs를 사용하면 내가 믿는 명령 행 버전을 작성할 수 있습니다. – Nope

+0

와우. 당신 정말 대단하네요. 이게 내가 브라우저에서 실행할 수있는 것입니까? 나는 모든 도움에 정말로 감사한다. 난 어디로 갈 수/내가 API에서 스크립트를 실행하고 데이터를 복사하는 데 사용해야합니다 알아야합니다. 그럼 JSON에서 CSV로 변환을 실행할 수 있습니다. – Streamer

관련 문제