Skip to content

Commit

Permalink
모공 글만 찾아서 수정하도록 변경.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kyujin Cho authored and Kyujin Cho committed Oct 25, 2015
1 parent a9ef91c commit 5c69efd
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion AbandonClien/Clien.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public async Task<List<ArticleInfo>> GetMyArticles(int page = 1)

// page링크가 아닌경우 - 게시물 링크
// ../bbs/board.php?bo_table=park&wr_id=31130081
if (hrefQuery["page"] == null)
if (hrefQuery["page"] == null && hrefQuery["bo_table"] == "park")
{
articles.Add(new ArticleInfo()
{
Expand Down
38 changes: 17 additions & 21 deletions AbandonClien/DestroyEverything.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public async Task Collect()


int totalArticle = articles.Count + searchArticles.Count;
Console.WriteLine("총 {0}개의 게시물에서 댓글을 검색합니다.", totalArticle);
Console.WriteLine("총 {0}개의 모두의 공원 게시물에서 댓글을 검색합니다.", totalArticle);

List<Task> tasks = new List<Task>();
var commentBag = new ConcurrentBag<CommentInfo>();
Expand Down Expand Up @@ -112,12 +112,12 @@ private async Task<List<ArticleInfo>> GoogleSearch(List<ArticleInfo> myArticles)
StringBuilder sb = new StringBuilder();
sb.Append('"');
sb.Append(await Clien.GetMyNickname());
sb.Append("\" site:clien.net");
sb.Append("\" 모두의공원 site:clien.net");

List<ArticleInfo> searchArticles = new List<ArticleInfo>();

string keyword = sb.ToString();
Console.WriteLine("구글에서 {0} 로 검색하여 내가 쓴 댓글이 있는 글도 수집합니다.", keyword);
Console.WriteLine("구글에서 {0} 로 검색하여 모두의 공원에 내가 쓴 댓글이 있는 글도 수집합니다.", keyword);

GoogleSearch search = new GoogleSearch(keyword, 100);
while (true)
Expand All @@ -134,25 +134,26 @@ private async Task<List<ArticleInfo>> GoogleSearch(List<ArticleInfo> myArticles)
var proxyUrl = HttpUtility.ParseQueryString(HttpUtility.HtmlDecode(result.Url.Substring(4)));
var realUrl = HttpUtility.HtmlDecode(proxyUrl["q"]);

int queryIndex = realUrl.IndexOf('?');
var queryString = HttpUtility.ParseQueryString(realUrl.Substring(queryIndex + 1));

// 게시판 URL일때만 큐에 넣어둔다.
if (realUrl.IndexOf("board.php") >= 0)
if (realUrl.IndexOf("board.php") >= 0 && queryString["bo_table"] == "park")
{
int queryIndex = realUrl.IndexOf('?');
var queryString = HttpUtility.ParseQueryString(realUrl.Substring(queryIndex + 1));

var foundArticle = new ArticleInfo()
{
Subject = result.Title,
ID = long.Parse(queryString["wr_id"]),
Table = queryString["bo_table"]
};
var foundArticle = new ArticleInfo()
{
Subject = result.Title,
ID = long.Parse(queryString["wr_id"]),
Table = queryString["bo_table"]
};

// 담겨진 요소를 캐시해서 배열에서 요소를 다시 찾아보는낭비를 줄여야하지만
// 이 프로그램은 이정도 성능 이슈는 상관없으므로 무시하자.
if (myArticles.Where(x => (x.ID == foundArticle.ID && x.Table.Equals(foundArticle.Table))).Count() == 0)
{
searchArticles.Add(foundArticle);
//Console.WriteLine("[구굴링 결과] {0}" + foundArticle.Subject);
//Console.WriteLine("[구글링 결과] {0}" + foundArticle.Subject);
}
}
}
Expand All @@ -174,24 +175,19 @@ private async Task<List<ArticleInfo>> GoogleSearch(List<ArticleInfo> myArticles)

public bool Describe()
{
Console.WriteLine("총 {0}개의 게시물에서 {1}개의 댓글을 찾았습니다.", Articles.Count, Comments.Count);
Console.WriteLine("한번 삭제하면 복구가 불가능합니다. 삭제하시려면 Y를 누르세요.");
Console.WriteLine("총 {0}개의 모두의 공원 게시물에서 {1}개의 댓글을 찾았습니다.", Articles.Count, Comments.Count);
Console.WriteLine("한번 삭제하면 복구가 불가능합니다. 취소하시려면 지금 Ctrl+C 키를 누르세요.");
#if WITHOUT_ARTICLE
Console.WriteLine("게시물은 삭제하지 않고 댓글만 삭제합니다.");
#else
Console.WriteLine("게시물과 댓글이 모두 삭제됩니다.");
#endif
Console.Write("정말 삭제하시겠습니까? ");

var keyInfo = Console.ReadKey();
Console.Write("\n");

if (keyInfo.KeyChar.ToString().ToUpper().Equals("Y"))
if (true)
{
return true;
}

return false;
}

protected string GetRandomMessage()
Expand Down
6 changes: 5 additions & 1 deletion AbandonClien/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ static void Main(string[] args)
string id;
string pw;

Console.Write("클리앙 아이디: ");
Console.Write("면책 조항 : 이 툴은 구글 검색을 이용하여 모두의 공원 게시판에서의 댓글을 찾아 삭제합니다. \n");
Console.Write(" 이 과정에서 구글 검색엔진의 실수로 인하여 간혹 다른 게시판의 댓글이 사라질 수 있으며, 이에 대해 본 제작자는 책임을 지지 않습니다. \n");
Console.Write("이 프로그램에서 최종 확인 질문 따위는 없습니다. 취소하고 싶으시면 검색 과정에서 Ctrl+C를 누르거나 그냥 창을 끄세요. \n");

Console.Write("\n 클리앙 아이디: ");
id = Console.ReadLine();

Console.Write("클리앙 암호: ");
Expand Down

0 comments on commit 5c69efd

Please sign in to comment.