דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. עדכונים שוטפים מהפורום - קוד פתוח

עדכונים שוטפים מהפורום - קוד פתוח

מתוזמן נעוץ נעול הועבר ארכיון code613m
26 פוסטים 5 כותבים 1.4k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #14

    גירסה שלי לקוד.
    הקוד הוא הוא מחלקה עם אירוע של אלמנטים חדשים, ואין לה שום תלות ושייכות לאיך שישתמשו איתה.

    Public Class RssForumRead
    
        Public Class ItemRss
            Public Property authorname As String
            Public Property categoryTitle As String
            Public Property categoryLink As String
            Public Property Content As String
            Public Property UpdateAt As Date
    
            Public Sub New(author As String, Cat As String, CatLink As String, Cont As String, At As Date)
                authorname = author
                categoryTitle = Cat
                categoryLink = CatLink
                Content = Cont
                UpdateAt = At
            End Sub
        End Class
    
        Public Property Address As String = "http://code.613m.org/feed.php"
    
        Public Property IntervalUpdate As Integer
            Get
                Return Timer.Interval
            End Get
            Set(value As Integer)
                Timer.Interval = value
            End Set
        End Property
    
    
        Private ns As XNamespace = "http://www.w3.org/2005/Atom"
        Private lastDate As Date
        Private Timer As Timers.Timer
    
        Public Sub New()
            Timer = New Timers.Timer(10000)
            DownloadData()
            AddHandler Timer.Elapsed, AddressOf DownloadData
            Timer.Start()
        End Sub
    
        Private Function DateFromForumFormat(str As String) As Date
            Dim extStr = str.Split("+")(0)
            If String.IsNullOrEmpty(extStr) Then Return #1/1/1900#
            Return Date.ParseExact(extStr, "yyyy-MM-dd\THH:mm:ss", Globalization.CultureInfo.InvariantCulture)
        End Function
    
        Private Sub DownloadData()
            Dim xmlDoc = System.Xml.Linq.XDocument.Load("http://code.613m.org/feed.php")
            Dim s = xmlDoc.Root.Name
            Dim NewEl = From item In xmlDoc.Element(ns + "feed").Elements(ns + "entry")
                        Let datePub = DateFromForumFormat(item.Element(ns + "published"))
                        Where datePub > lastDate
                        Let cat = item.Element(ns + "category")
                        Select New ItemRss(item.Element(ns + "author").Elements().First().Value,
                                           cat.Attribute("label"),
                                           cat.Attribute("scheme"),
                                           item.Element(ns + "content").Value,
                                           datePub)
    
            If NewEl.Any Then
                RaiseEvent NewItems(NewEl)
                lastDate = NewEl.First().UpdateAt
            End If
        End Sub
    
        Public Event NewItems(items As IEnumerable(Of ItemRss))
    
    End Class
    

    פורסם במקור בפורום CODE613 ב13/02/2014 18:14 (+02:00)

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    0
    • K מנותק
      K מנותק
      kingyes
      כתב ב נערך לאחרונה על ידי
      #15

      לא הבנתי מה הכוונה "טווח זמן לקבל את הקוד".. בכל פתיחה של סוקט מינימלי פשוט מעבירים בפרמטר לפונקציה כמה שניות אתה מוכן לתת ל-Timeout וזהו.. אתה לא אמור לעשות את זה מחוץ לפונקציה.. אלא רק לחכות לקבל מהשרת וזהו.

      פורסם במקור בפורום CODE613 ב13/02/2014 18:22 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • M מנותק
        M מנותק
        magicode
        כתב ב נערך לאחרונה על ידי
        #16

        למה שלא תורידו את זה.
        http://clients2.google.com/service/update2/crx?response=redirect&x=id%3Dpnjaodmkngahhkoihejjehlcdlnohgmp%26uc%26lang%3Den-US&prod=chrome

        זה תוסף לכרום שקורא rss מכל אתר שתומך בזה.

        פורסם במקור בפורום CODE613 ב13/02/2014 18:28 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #17

          ואם כרום סגור? או אם משתמשים בדפדפן אחר ?

          פורסם במקור בפורום CODE613 ב13/02/2014 18:29 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #18

            @KingYes

            לא הבנתי מה הכוונה "טווח זמן לקבל את הקוד".. בכל פתיחה של סוקט מינימלי פשוט מעבירים בפרמטר לפונקציה כמה שניות אתה מוכן לתת ל-Timeout וזהו.. אתה לא אמור לעשות את זה מחוץ לפונקציה.. אלא רק לחכות לקבל מהשרת וזהו.

            תראה זה שאלה שלישית שלך על הקוד, תירגע...
            דבר ראשון זה לא ממש timeout. timeout של סוקט אני סבור שזה הזמן שבין בקשה לתשובה, ואילו במקרה הורדת קובץ יכול להיות שיש תשובה מהירה אבל זה קובץ גדול, ואז זה ממומש בזרם (stream), שזה בקשות קטנות (אני חושב, לא יודע איך כתבו את המחלקה של webclient). גם במקרה כזה בקוד של רחמים ההורדה תיקטע עקב איטיותה.

            דבר שני, אפשר לעשות timeout כשאתה פותח סוקט אבל פה הוא לא פתח כלום אלא השתמש במחלקה קיימת.
            בשביל לשנות את הtimeout שלה חייבים לרשת ממנה ולהתאים זאת.

            פורסם במקור בפורום CODE613 ב13/02/2014 18:33 (+02:00)

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            0
            • K מנותק
              K מנותק
              kingyes
              כתב ב נערך לאחרונה על ידי
              #19

              אני יעצור פה עם ה"שאלות"..
              יש פרוייקט מאוד מומלץ.. ואני מאוד מרוצה ממנו, עושה עבודה ממש טובה.. אז הנה השיתוף: http://www.feednotifier.com/

              אתם תהנו 🙂

              פורסם במקור בפורום CODE613 ב13/02/2014 18:39 (+02:00)

              תגובה 1 תגובה אחרונה
              1
              • רחמיםר מנותק
                רחמיםר מנותק
                רחמים מורחק
                כתב ב נערך לאחרונה על ידי
                #20

                קצת שיפצתי את הקוד שלי על פי הקוד של דוד:

                1. בקריאת ה XML
                2. בדיקה על פי תאריך אחרון
                3. הרווחנו בקוד הזה שגם אם תוכנת נתיב סגורה זה לא מפריע לקרא את ה RSS

                שימו לב!
                יש להגדיר את ה Interval של הטיימר ל 60 שניות לפחות.

                Private ns As XNamespace = "http://www.w3.org/2005/Atom"
                    Private lastDate As Date = Date.MinValue
                    Private xmlDoc As XDocument
                    Private href As String
                
                    Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
                        Try
                            Dim DownloadThread = New Threading.Thread(Sub()
                                                                          Try
                                                                              xmlDoc = XDocument.Load("http://code.613m.org/feed.php")
                                                                          Catch ex As Exception
                                                                          End Try
                                                                      End Sub)
                            DownloadThread.Start()
                            'מנסה להוריד נתונים עד 10 שניות
                            For I = 0 To 10
                                Threading.Thread.Sleep(1000)
                                If DownloadThread.IsAlive = False Then
                                    Exit For
                                End If
                            Next
                            'יוצא אם עד אחר 10 שניות לא הצלח להוריד
                            If DownloadThread.IsAlive Then
                                DownloadThread.Abort()
                                Exit Sub
                            End If
                
                            Dim XEl As XElement = xmlDoc.Element(ns + "feed").Elements(ns + "entry")(0)
                            If Date.Parse(XEl.Element(ns + "published").Value) > lastDate Then
                                lastDate = Now
                                Dim sb As New StringBuilder
                                sb.AppendLine("המחבר: " & XEl.Element(ns + "author").Value)
                                sb.AppendLine("נושא: " & XEl.Element(ns + "title").Value)
                                sb.AppendLine("תוכן ההודעה: " & XEl.Element(ns + "content").Value)
                                href = XEl.Element(ns + "link").Attributes("href")(0).Value
                                sb.AppendLine("לחץ כאן למעבר להודעה החדשה")
                                NotifyIcon1.ShowBalloonTip(5555, "הודעה חדשה בפורום", sb.ToString, ToolTipIcon.Info)
                            End If
                        Catch ex As Exception
                            MsgBox(ex.Message, MsgBoxStyle.Exclamation +
                                             MsgBoxStyle.MsgBoxRight +
                                             MsgBoxStyle.MsgBoxRtlReading)
                        End Try
                    End Sub
                    Private Sub NotifyIcon1_BalloonTipClicked(sender As Object,
                                                              e As System.EventArgs) Handles NotifyIcon1.BalloonTipClicked
                        Try
                            Process.Start(href)
                        Catch ex As Exception
                            MsgBox(ex.Message, MsgBoxStyle.Exclamation +
                                                 MsgBoxStyle.MsgBoxRight +
                                                 MsgBoxStyle.MsgBoxRtlReading)
                        End Try
                    End Sub
                

                פורסם במקור בפורום CODE613 ב14/02/2014 13:40 (+02:00)

                תגובה 1 תגובה אחרונה
                1
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #21

                  רחמים, טיימר וטריד, זה כפל.
                  אחד מהם מיותר.

                  פורסם במקור בפורום CODE613 ב16/02/2014 09:37 (+02:00)

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  0
                  • רחמיםר מנותק
                    רחמיםר מנותק
                    רחמים מורחק
                    כתב ב נערך לאחרונה על ידי
                    #22

                    @דוד ל.ט.

                    רחמים, טיימר וטריד, זה כפל.
                    אחד מהם מיותר.

                    לא הבנתי אותך, תפקיד הטיימר זה להפעיל את הבדיקה כל X זמן, אני הגדרתי על דקה.
                    ותפקיד הטריד זה לבצע את ההורדה של ה RSS בלא זה יחסום את הממשק.

                    פורסם במקור בפורום CODE613 ב16/02/2014 09:40 (+02:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #23

                      @רחמים

                      @דוד ל.ט.
                      רחמים, טיימר וטריד, זה כפל.

                      אחד מהם מיותר.

                      לא הבנתי אותך, תפקיד הטיימר זה להפעיל את הבדיקה כל X זמן, אני הגדרתי על דקה.
                      ותפקיד הטריד זה לבצע את ההורדה של ה RSS בלא זה יחסום את הממשק.

                      צודק זו טעות שלי, החלפתי את הטיימר של טריידינג עם הטיימר הזה.
                      (אכן לכאורה יותר מתאים להחליף אותו בטיימר של טריידינג).
                      אם אתה משתמש בקוד שלי אתה לא צריך בכלל טיימר משלך, הטיימר כלול בפנים, ושים לב שאין שום טריד.

                      עריכה:
                      כעת שמתי לב שאני משתמש בדיוק באותו הטיימר שלך,
                      וזה אומר שאני כן תוקע את התצוגה בעת הורדה.
                      אעדכן זאת בהמשך עם טיימר של טריידינג.

                      פורסם במקור בפורום CODE613 ב16/02/2014 10:52 (+02:00)

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      0
                      • רחמיםר מנותק
                        רחמיםר מנותק
                        רחמים מורחק
                        כתב ב נערך לאחרונה על ידי
                        #24

                        אני חושב שכדאי לנעוץ את האשכול הזה [אולי אחרי קצת עריכה] כדי שכל חברי הפורום יהיו מעודכנים וכך הפורום ישגשג יותר ויותר בע''ה.

                        פורסם במקור בפורום CODE613 ב16/02/2014 11:11 (+02:00)

                        תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי
                          #25

                          @רחמים

                          אני חושב שכדאי לנעוץ את האשכול הזה [אולי אחרי קצת עריכה] כדי שכל חברי הפורום יהיו מעודכנים וכך הפורום ישגשג יותר ויותר בע''ה.

                          אני חושב זה אשכול נחמד לצרכי לימוד.
                          כי בשביל קראת rss יש תוכנות מעולות כבר בשוק, לא?
                          לדוגמה מה שלKingYes העלה.

                          פורסם במקור בפורום CODE613 ב16/02/2014 11:15 (+02:00)

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          0
                          • רחמיםר מנותק
                            רחמיםר מנותק
                            רחמים מורחק
                            כתב ב נערך לאחרונה על ידי
                            #26

                            מי שרוצה להתעדכן מכמה RSS אז יקח את התוסף שיקיר הציע אבל אם זה רק בשביל הפורום שלנו אז כמה שורות קוד עדיפות על פני 7 מגה התקנה.
                            אפשר לעשות קצת עריכה לאשכול ולשים את כל הפתרונות בראש האשכול, והבוחר יבחר.
                            העיקר לקדם את הפורום 🙂

                            פורסם במקור בפורום CODE613 ב16/02/2014 11:23 (+02:00)

                            תגובה 1 תגובה אחרונה
                            1

                            • 1
                            • 2
                            בא תתחבר לדף היומי!
                            • התחברות

                            • אין לך חשבון עדיין? הרשמה

                            • התחברו או הירשמו כדי לחפש.
                            • פוסט ראשון
                              פוסט אחרון
                            0
                            • דף הבית
                            • קטגוריות
                            • פוסטים אחרונים
                            • משתמשים
                            • חיפוש
                            • חוקי הפורום