TwitDJ(정보적 약자들을 위한 트윗방송 시스템)의 초기 버젼에 대한 포스팅은 다음주소를 참조 해 주세요. (http://topnanis.tistory.com/140)

------------------------------------------------------------------------------------------------------------------------------------------


어르신들이나 장애인들도 쉽게 이용할 수 있는 소셜네트워크 공유 프로그램이라는 기본컨셉을 유지한 채, 코드는 사실 처음부터 다시 짰답니다.. 

많이 이용하여 주시구, 혹시 버그 발견하시면 알려주세용~


트윗DJ 2.3 Install.exe



PC에 .net framework 4.0이 설치되어 있지 않아 에러가 난다면 이것도 설치 해 주세요(OS에 따라 다를수 있습니다)


dotNetFx40_Full_setup.exe



아래는 배포 공지사항 입니다 -  



안녕하세요? 



정보적 약자들을 위한 트윗방송 시스템 - TwitDJ를 이용해 주셔서 감사합니다.



TwitDJ(트윗디제이)는 비상업적인 목적에 한하여, 자유롭게 사용할 수 있습니다.

  - 비상업적인 목적 : 트윗디제이를 이용한 직접적인 수익이 없는 경우.



사용 중 불편하신 점이나 개선에 관한 아이디어가 있으시면 언제든 블로그에 오셔서 글을 남겨 주시기 바랍니다.


(음성파일을 만드는 중이니, 로딩중 채널 변경이나 창 이동은 새소리 효과음이 날 때까지 조금만 기다려 주세요 ^^;)

 

더 좋은 프로그램이 되도록 최선을 다해 노력하겠습니다. 



블로그  http://topnanis.tistory.com/ 

메일  topnanis@nate.com




### 트윗디제이 2.3 버젼 추가 사항 ###


메인창에서의 채널 변경 및 볼륨 조절


(순차가 아닌, 마우스 호버 이벤트로 채널을 선택하실 수 있습니다) 


기타 UI 수정, 버그 제거


### 기타사항 ###



각 채널방송 내용은 포털에서 제공하는 내용 및 트위터에서 추천하는 각 분야별 유명인사 TOP 20명의 파싱정보로


저의 소견과 무관함을 밝힙니다. 


음원은 OS기본 샘플음원으로 기타 문제되는 내용은 알려주시면 즉시 조치하도록 하겠습니다. 



 

신고
Creative Commons License
Creative Commons License
Posted by 준환이형님

댓글을 달아 주세요

  1. h0ney 2012.01.13 18:57 신고 Address Modify/Delete Reply

    오오오오!! 오픈소스 오픈소스~ ㅋㅋㅋㅋ
    수고 많았심 ㅋㅋ

  2. 변지현 2012.01.13 21:23 신고 Address Modify/Delete Reply

    안녕하세요 행님 지현입니더 ㅎㅎ
    방금 사용해보고 있는데 상당히 매력적인데요~ ㅎㅎ
    감히 제가 몇가지 괜찮을 것 같은 아이디어를 내도 괜찮을까요?ㅠ
    1. UX
    - 메인화면에서 배경음악과 DJ 볼륨 크기를 조정 할 수 있으면 좋을 것 같아요^^ㅎ
    - 카테고리를 마우스 좌우측 버튼도 상당히 편한데 카테고리 형식으로 보여지고 선택할 수 있는 창
    (예를 들면 재생목록 선택하듯이.. 그런것도 있으면 좋을 것 같아요 ㅎㅎ)
    2. 기능
    - 사용자가 원하는 문구가 삽입된 것들도 서칭해서 방송 해줄수 없을까요? 사용자 수정 채널 ㅎ 맞춤형 서비스?ㅎ
    (예를 들면 네이버 실시간 검색 처럼요 ㅎ)

    근데 정말 멋지게 만드셨어요.. 아이디어 매우 돋보인다는!!


예전 만들었던 프로그램(TwitDJ : 정보적 약자들을 위한 트윗방송 시스템 -  http://topnanis.tistory.com/140 )을 리메이크 하고 있는데..

아쉽군요. 게으름으로 좋은 대회들을 다 놓쳐버렸으니., (요새용돈도하나도없음엉엉내가왜이걸여기다적고있니 

아쉽지만.. 이 참에 다시 하나씩 만져가며 사용하기 좋은 예제 소스를 공유하려고 합니다.

Twitterizer 라이브러리를 이용하였구요. 사용법은 어렵지 않으나 라이브러리 버젼과 프레임워크 버젼에 유의하여야 합니다. 예제에는 

(Twitterizer2.3을 사용하였습니다. 프레임워크 버젼은 4.0 이예요)

 



시작을 하면 채널번호를 물어보는데 1에서 5번까지의 미리 만들어 놓은 샘플 채널의 현재 타임라인을 부를 수 있습니다.

트윗API를 사용하기 위해서는 


1. 트윗 아이디 생성

2. 토큰값을 받는 등의 인증절차

3. Twitterizer 라이브러리를 소스에 연결

4. 소스 코딩 



순으로 조금 까다로운 절차가 필요합니다. 아래는 소스 설명입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//라이브러리를 포함시킵니다. 레퍼런스해서 Twitterizer.dll 연결해주면 됩니다.
using Twitterizer;
using System.Collections.Generic;

namespace TwitDjLight
{
    class Program
    {
        static int whoIsDj = 0;

        static OAuthTokens tokens;                  
 
        static void Main(string[] args)
        {

//메인에서의 기능은 [채널선택]과 [타임라인]을 뿌려주는 것입니다. 
 
            SelectDj();

            PrintTimeline();

            return;
        }
        

        static void PrintTimeline()
        {
               
//친구의 타임라인을 4개만 뿌려주라는 거지요. 이것은 옵션을 통해 자신의 글만 보거나, 쪽지 글을 읽는 등의 선택을 할 수 있습니다.
 
            TwitterResponse<TwitterStatusCollection> Collection = TwitterTimeline.FriendTimeline(tokens, new TimelineOptions { Count = 4 });

            TwitterStatusCollection T = Collection.ResponseObject;  
             
//흔히 예제에는 foreach문으로 되어 있는데 편의에 따라 for문으로 바꾸었습니다. 발신자명, 발신시각, 해시값, 내용 등입니다.
          
            for (int i = 0; i < T.Count; i++)
            {
                Console.WriteLine(T[i].User.Name);
                Console.WriteLine(T[i].CreatedDate);          
                Console.WriteLine("@" + T[i].User.ScreenName);
                Console.WriteLine(Convert.ToString(T[i].Id));
                Console.WriteLine(T[i].CreatedDate);
                Console.WriteLine(T[i].Text);
            }     
            
            return;
        }


        static void SelectDj()
        {
// 채널입력부 입니다. printf, scanf의 C#버젼이네요
 
            Console.Write("Input who is DJ? ");

            string str;
            str = System.Console.ReadLine();
            whoIsDj = int.Parse(str);

            Console.WriteLine("start whoIsDj : " + whoIsDj);

            tokens = new OAuthTokens();

            switch (whoIsDj)
            {
//미리 만들어 놓은 인증키입니다. 원하시는 내용의 타임라인이 있으시다면 해당 아이디의 인증을 받아 아래에 덮어써주세요
 
                // 방송언론
                case 1:
                    tokens.AccessToken = "355431986-c4cibrUfhqLB4FixLgdX4OqO47glElUuPdY9faGz";
                    tokens.AccessTokenSecret = "hD2ykJpUf7kYQ9fBWjS6Oi6ZEPyDhrxNsTiql7Vzsh8";
                    tokens.ConsumerKey = "qZLf2Yi7pw3neUquwjrg";
                    tokens.ConsumerSecret = "vVIWxy5A5NhCrjT00tzdYFe21KIe3TAsYiWnjNito";
                    
                    break;

                // 경제
                case 2:
                    tokens.AccessToken = "355441089-6ukgY8pk2FeJOkvpLuy5Miy25sbyI54ApNtfXAta";
                    tokens.AccessTokenSecret = "ckNs4rqxQD0Ea0QVmXIHpqZmz4WyXCD3BxeRjNeqEG4";
                    tokens.ConsumerKey = "Iopjaxuu77CtTu9oRlmCsQ";
                    tokens.ConsumerSecret = "jFzzxHtOnZYQlCWgeF1OB3Ddzfoev9d6oeJBqaYmf8";

                    break;

                // 복지의학
                case 3:
                    tokens.AccessToken = "355449483-NsvsaGdQ8X4AYlzLOjKHhwF7zQlK8usvJOW3SZXZ";
                    tokens.AccessTokenSecret = "zJGs61E9TbLeBFyED7RpdCbO8jPFN2WSb0t4X11yT8g";
                    tokens.ConsumerKey = "Glh64NT9P0DBpiEryYhg";
                    tokens.ConsumerSecret = "gGx3fjd3DLvcrG92aQ9g696JJV4ONemwUQIMZ5l6M";

                    break;

                // 정치
                case 4:
                    tokens.AccessToken = "356327076-dsCfMDar6qzcW4R76j0i13m3MxQCackJJ2IqKB8q";
                    tokens.AccessTokenSecret = "9NSLjYP7VXb5pPijnx2ZoI3tbzGGu7AV5drli5ZLQQ";
                    tokens.ConsumerKey = "x2eCHQbxZyy1ETJ1fSQuag";
                    tokens.ConsumerSecret = "IEgTkmpu2DPhfzRlcSkTKs2fhGjBNChOvhuKzZDmR8";

                    break;

            // 연예오락
                case 5:                  
                    tokens.AccessToken = "356333815-I6nsBxtG0vswjxiTBWjzJoTvuCbxIR2HV0JfE1R6";
                    tokens.AccessTokenSecret = "3jVCCAaodyBJTH94lQXidD6bVsPCxZ81OZG7MNcg4";
                    tokens.ConsumerKey = "NKFHIMwnBulTQqSVCrgig";
                    tokens.ConsumerSecret = "aMRFvptID3WWiMm23JdPxhGW7aQ0jk2OlgUi0n88PQ";

                    break;
             
                default:     return;   break;
            }
        }        
    }
}


아래에 소스를 첨부합니다~



 
신고
Creative Commons License
Creative Commons License
Posted by 준환이형님

댓글을 달아 주세요

  1. Visitor 2012.05.25 14:00 신고 Address Modify/Delete Reply

    안녕하세요. 아직 시작 단계인지라 포스팅 덕분에 많은 도움이 되었습니다.
    다만, 아직 의문이 풀리지 않는 부분이 있네요..
    소스에 보면 분야별로 액세스토큰이랑 다른 토큰들을 획득을 하셨는데... 이 토큰은 어디에서 획득하는 건가요??
    지금까지 찾아본 자료내용으로는 토큰들이 애플리케이션에 적용되는 토큰으로 알고 있거든요..

    • Visitor 2012.05.25 17:07 신고 Address Modify/Delete

      아.. 그렇군요.. 일부러 아이디까지 만드셨다니..고생이 많으셨겠군요..
      답변주셔서 감사합니다..^^


중고등학생 시절,

밤에 마이마이 카세트 라디오를 틀면 매력적인 목소리의 여자 DJ가

사람들의 사연을 읽어주고

함께 공감 해주며,

분위기 좋은 노래를 선곡 해 주곤 했었습니다. 

가장 신선한 사연과 정보를 

컴퓨터가 어려우신 저희 부모님과 같은 연세의 어르신들과, 또 몸이 불편하신 장애인들과 함께 나누고 싶습니다.

소셜 네트워크는 결코 젊은이들이나

컴퓨터가 익숙한 지식인들만의 전유물이 될 수 없습니다.

우리는 이것을 나누어야 할 필요가 있습니다(물론 저도 쓰고요 :D)



------------------------------------------------------------------------------------------------------------------

TwitDJ(정보적 약자들을 위한 트윗방송 시스템)의 최신 버젼 다운로드와 포스팅은 다음주소를 참조 해 주세요. ( http://topnanis.tistory.com/167 )




그 동안 과제 포스팅이 3개월 정도 지난 것 같아요.. 

오랜만에 프로젝트를 하나 완성하여 공개합니다~

쨘/



어? 조금 특이하지 않나요? ㅎ


핵심 UI는 이렇습니다.. 기본상태바와 메뉴 다섯가지.

이번 과제는 주제별 트위터 및 포털 일기예보, 실시간 검색순위 등을 조합 한 뒤 TTS를 통하여 스크립트를 읽어주는 방송 프로그램입니다. 

교육부족이나 지체장애로 인해 컴퓨터 사용이 어려운 사람들이 편리하게 소셜네트워크를 통한 정보를 접할 수 있도록 카테고리별로 등록시킨 아이디의 타임라인을 채널의 형식으로 쉽게 청취 할 수 있으며 원하는 노래를 함께 재생하거나 사연을 올리는 기능 등을 함께 제공합니다.


즉, 컴퓨터가 어려운 사람들을 위한 정보공유 프로그램입니다. 


장애인이나 종일 라디오를 들으시는 근로자, 나이 드신 분들도  다양한 매체를 접하실수 있도록 하기 위해서 가장 단순하고 간편해야 한다고 생각했지요. 크기 변경 창을 누르면 조금 더 자세한 상황을 볼수 있습니다.


 
실제 디제이가 노래를 틀어주고 사연을 읽어주며 방송을 진행하듯이 흐름은 자연스럽게 이어집니다.

각각의 주제는 카테고리별 유명인사들을 팔로잉 시킨 아이디들의 모음으로 아이콘은 각각 라디오의 '채널' 역할을 하게 됩니다.

추가 기능을 누르면 폼이 확장 되며 사연을 전송 할 수 있지요. 그건 자주 사용하진 않으니까 또 숨겼어요. 난 부끄럼쟁이니깐~ :D




'트윗디제이'는 대안 매체로서 일반 미디어(기존 지상파, 공중파 방송)와 어떤 내용의 차별화를 두었을까요? (질문이 쓰다보니 어렵 -_-;)

트윗자체가 일단 큰 차이점이겠죠. 공식입장이 아닌 일반인들의 비공식입장을 방송 해주니까요.

두번째로는 실시간 일기예보를 들 수 있습니다. 날씨는 뉴스 마치고 하루에 몇번 들을 수 있는 기회가 적죠. 트윗디제이는 원할땐 언제나 들을 수 있어요 ㅋ

그리고.. 실시간 인기 검색 순위가 있습니다. 현재 시각의 이슈 단어를 알려주죠.

우선.. 머리짜내 필요하다고 끌어 온 API 주제와 과제는 여기까지 해서 마무리..


소프트웨어 아키텍쳐는 이렇습니다. 15초마다 리프레쉬를 시켜 새로운 정보를 받아옵니다.

각각 받아온 정보는 TTS를 통해 읽어주게 되구요~

카테고리(채널)에 따라 API내용은 달라 질 수 있습니다.


 
이번 프로그램도 많은 분들이 도와주시고 조언 해 주셨어요.


글자뿐이던 타임라인 리스트박스를 채널로 묶고 심플한 UI에 대한 아이디어, 폰연동 등.. 전체적인 방향에 송용주 멘토님께서 많은 지도를 해 주셨습니다. 프로그램에 기획자 역할을 해 주셨어요.

원래 스마트 폰에까지 연동 시키려 했는데.. 개발자 만기가 되었더군요. 이건 다음 기회에 ㅠ

프로그램에 대한 적극적인 지지와 조언(+코딩지도, UI)을 해준

펄의 신, honey님

C++의 신, 다람군

기획 때부터 세세하게 많은 도움을 주셨습니다.  (그리고 기억 날지 모르겠는데 예전에 희승님이 이렇게 읽어주는 프로그램이 하나 있었으면 좋겠다고 기안 했었죠)


이 프로그램은 마무리 작업을 조금 거쳐 곧 공개하도록 하겠습니다.


여기까지 트윗 DJ 리뷰 였습니다 :D
 


신고
Creative Commons License
Creative Commons License
Posted by 준환이형님

댓글을 달아 주세요

  1. h0ney 2011.08.26 07:27 신고 Address Modify/Delete Reply

    어제 발표는 사람을 빠져들게 하더라
    이걸 왠지 써야 할 것 같던데
    약을 파는 행위 괜찮았음 ㅋㅋㅋ

    나 스티커 붙인거 알징?
    오늘 붙여달라는건 아님 하하하;;

  2. Denial 2011.08.27 21:41 신고 Address Modify/Delete Reply

    그럼 희승행님이 기획한거에요?ㅋㅋ

  3. Soundmaster 2011.12.22 11:26 신고 Address Modify/Delete Reply

    준환의 프리젠테이션...
    왠지 약장사 같은 포스가
    여기까지 느껴지는군...ㅋ

티스토리 툴바