我開發的軟件可以監視論壇上的帖子,並在帖子標題(發誓詞,色情等)中匹配關鍵字時提醒管理員/版主。如何監視論壇帖子以僅查看新帖,而不是每次查看整個列表?
我已經設置了一個計時器,每隔30秒它將監視它是一個繁忙的論壇。我的問題是如何存儲「最後一次檢查」,所以下次運行它不會通過整個論壇。
不知道該怎麼去做。我嘗試了一些似乎不起作用的東西。當我經歷過大學(軟件工程)並且未能解決一個簡單問題時,我對自己感到非常惱火。
任何意見讚賞。
編輯:解析HTML作爲論壇所有者不希望應用程序連接到數據庫。
我開發的軟件可以監視論壇上的帖子,並在帖子標題(發誓詞,色情等)中匹配關鍵字時提醒管理員/版主。如何監視論壇帖子以僅查看新帖,而不是每次查看整個列表?
我已經設置了一個計時器,每隔30秒它將監視它是一個繁忙的論壇。我的問題是如何存儲「最後一次檢查」,所以下次運行它不會通過整個論壇。
不知道該怎麼去做。我嘗試了一些似乎不起作用的東西。當我經歷過大學(軟件工程)並且未能解決一個簡單問題時,我對自己感到非常惱火。
任何意見讚賞。
編輯:解析HTML作爲論壇所有者不希望應用程序連接到數據庫。
這聽起來像你是通過解析HTML來做到這一點,是嗎?
如果您有權訪問論壇的後端數據存儲,那麼它會容易得多。例如,如果他們有一個表Posts
,那麼你只保留你檢查的最後一個ID。如果你必須通過HTML結果,它將變得更加棘手。
是使用HTML解析。由於我無法訪問數據庫。論壇所有者不希望應用程序訪問數據庫。 – 2010-02-12 15:34:28
你對帖子等內容有什麼樣的訪問?如果你可以執行一個簡單的查詢,比如「SELECT * FROM [ForumPosts] Where PostTimeStamp> @lastChecked」,你面臨什麼問題?
我沒有數據庫訪問。它使用HTTPWebRequest。該應用程序將被許多mod和管理員用於不同的特權。論壇所有者不希望在應用程序中包含任何類似內容。 – 2010-02-12 15:33:47
別難過。大多數大學,至少在美國,對於如何教授學生當前的軟件開發技能毫無頭緒。
如果您要在數據庫中存儲在表中檢查過的最後一篇文章,然後在需要掃描論壇時閱讀最後一篇文章的編號(或您在那裏存儲的任何文章),然後從那裏。然後,完成後,用最後一個帖子號更新此表。
將每30秒運行一次的非關鍵數據存儲在數據庫中?只需將其作爲變量存儲在內存中即可。 – 2010-02-12 15:36:28
@George - 將它存儲在內存中?如果服務器/計算機停機怎麼辦?你必須重新開始第一篇文章。不太實際。 – 2010-02-12 15:59:22
只要你實施某種合理的「不要評論比X更老的帖子」,就不是那麼重要。 – 2010-02-17 01:55:23
我不知道你是如何實現你的解決方案,但如果職位有一些比如,你可以在最後一個數字存儲在一個變量,然後檢查變量時重新檢查的價值。
這是假設你有你的號碼。
您需要保存最後你檢查了帖子的ID,然後在每次運行時,只查帖子比保存的ID更高的ID。您可以將此ID保存到文本文件或數據庫表中。
如何讀取和寫入文件,可以幫助您開始Here is an overview。
每個論壇都有ID嗎?如果是這樣,您可以跟蹤您已經檢查過的ID(或者如果ID是增量的,那麼只檢查ID>上次檢查的ID)。
方法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; }
希望這有助於
你爲什麼不只是實現一個褻瀆過濾器?現在,在我投票贊成之前,我完全反對他們,認爲他們是一個非常愚蠢的想法,但我知道很多客戶要求他們出於合法目的。
但是,爲什麼不在提交帖子前檢查發誓的單詞,而不是在事後檢查論壇?
好的建議。積極主動的做法總是比較好,儘管在這種情況下可能會有多大的可行性。 – Tom 2010-02-12 16:15:55
這個計時器在哪裏?你每30秒使用什麼機制來運行它? – AakashM 2010-02-12 15:30:26
爲什麼不在發佈前檢查帖子? – 2010-02-12 15:34:13