2010-02-12 28 views
0

我開發的軟件可以監視論壇上的帖子,並在帖子標題(發誓詞,色情等)中匹配關鍵字時提醒管理員/版主。如何監視論壇帖子以僅查看新帖,而不是每次查看整個列表?

我已經設置了一個計時器,每隔30秒它將監視它是一個繁忙的論壇。我的問題是如何存儲「最後一次檢查」,所以下次運行它不會通過整個論壇。

不知道該怎麼去做。我嘗試了一些似乎不起作用的東西。當我經歷過大學(軟件工程)並且未能解決一個簡單問題時,我對自己感到非常惱火。

任何意見讚賞。

編輯:解析HTML作爲論壇所有者不希望應用程序連接到數據庫。

+0

這個計時器在哪裏?你每30秒使用什麼機制來運行它? – AakashM 2010-02-12 15:30:26

+3

爲什麼不在發佈前檢查帖子? – 2010-02-12 15:34:13

回答

0

這聽起來像你是通過解析HTML來做到這一點,是嗎?

如果您有權訪問論壇的後端數據存儲,那麼它會容易得多。例如,如果他們有一個表Posts,那麼你只保留你檢查的最後一個ID。如果你必須通過HTML結果,它將變得更加棘手。

+0

是使用HTML解析。由於我無法訪問數據庫。論壇所有者不希望應用程序訪問數據庫。 – 2010-02-12 15:34:28

1

你對帖子等內容有什麼樣的訪問?如果你可以執行一個簡單的查詢,比如「SELECT * FROM [ForumPosts] Where PostTimeStamp> @lastChecked」,你面臨什麼問題?

+0

我沒有數據庫訪問。它使用HTTPWebRequest。該應用程序將被許多mod和管理員用於不同的特權。論壇所有者不希望在應用程序中包含任何類似內容。 – 2010-02-12 15:33:47

0

別難過。大多數大學,至少在美國,對於如何教授學生當前的軟件開發技能毫無頭緒。

如果您要在數據庫中存儲在表中檢查過的最後一篇文章,然後在需要掃描論壇時閱讀最後一篇文章的編號(或您在那裏存儲的任何文章),然後從那裏。然後,完成後,用最後一個帖子號更新此表。

+0

將每30秒運行一次的非關鍵數據存儲在數據庫中?只需將其作爲變量存儲在內存中即可。 – 2010-02-12 15:36:28

+1

@George - 將它存儲在內存中?如果服務器/計算機停機怎麼辦?你必須重新開始第一篇文章。不太實際。 – 2010-02-12 15:59:22

+0

只要你實施某種合理的「不要評論比X更老的帖子」,就不是那麼重要。 – 2010-02-17 01:55:23

0

我不知道你是如何實現你的解決方案,但如果職位有一些比如,你可以在最後一個數字存儲在一個變量,然後檢查變量時重新檢查的價值。

這是假設你有你的號碼。

1

您需要保存最後你檢查了帖子的ID,然後在每次運行時,只查帖子比保存的ID更高的ID。您可以將此ID保存到文本文件或數據庫表中。

如何讀取和寫入文件,可以幫助您開始Here is an overview

0

每個論壇都有ID嗎?如果是這樣,您可以跟蹤您已經檢查過的ID(或者如果ID是增量的,那麼只檢查ID>上次檢查的ID)。

0

方法1: 如果您在數據庫訪問記錄(崗位),使用這些

方法2" 如果你是消費內容,像一個RSS feed,你將不得不保留上次檢查的記錄,並將它們與新條目進行比較(如果已審閱)。

類似的話:

public class PostCompareManager 
     { 
      public void ComparePosts() 
      { 
       // may use url(string) of the post as ID or replace 
       // it with something unique, representing each post 
       Dictionary<string, Post> revPost = new Dictionary<string,Post>(); // replace with you HTTP get logic 
       Dictionary<string, Post> newPost = new Dictionary<string, Post>(); // replace with you HTTP get logic 
       // compare keys in Dictionaries 
       var oldKeys = revPost.Keys; 
       foreach (var k in newPost.Keys) 
       { oldKeys.Contains(k); } //do something 
      } 
     } 
     class Post 
     { string title; string description; string url; } 

希望這有助於

2

你爲什麼不只是實現一個褻瀆過濾器?現在,在我投票贊成之前,我完全反對他們,認爲他們是一個非常愚蠢的想法,但我知道很多客戶要求他們出於合法目的。

但是,爲什麼不在提交帖子前檢查發誓的單詞,而不是在事後檢查論壇?

+0

好的建議。積極主動的做法總是比較好,儘管在這種情況下可能會有多大的可行性。 – Tom 2010-02-12 16:15:55

相關問題