Gute Sache finde ich. Gut das ich darauf gestoßen bin bevor ich mein Projekt in die Beta gesetzt habe. Kann dann einiges vereinfachen mit einer EPVP anbindung.
LG.David.
LG.David.
warum wandelst du das passwort nicht einfach selbst beim login um. Sowas als extraaufgabe für den Benutzer zu machen ist einfach beschissen.Quote:
Danke. Mangelnde Aufmerksamkeit. :l
[Only registered and activated users can see links. Click Here To Register...]
Jetzt auch mit drin. :)
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
Ja. Das Problem liegt in der Library, daher habe ich mal ein Ticket für den Bug geöffnet welches bei Gelegenheit dann bearbeitet wird.Quote:
Kurze Frage:
Ich kenn mich jetzt nicht so aus mit C# bzw. mit Enums.
Wenn ich eine Reply mit Signatur-Anzeige machen will, sieht das dann so aus?
Die Signatur wird bei einer Reply nicht angezeigt.Code:thread.Reply(session, post, SectionPost.Settings.ShowSignature);
Ist der dritte Parameter so richtig gesetzt?
Also bei mir funktioniert es immer noch nicht.Quote:
Sollte behoben sein, kannst du es erneut ausprobieren?
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
thread.Reply(session, post);
Der Aufruf bleibt gleich. Du hast nicht den neusten Source, deshalb geht es immer noch nicht.Quote:
Also bei mir funktioniert es immer noch nicht.
Der Aufruf bleibt gleich, oder?
Habe sowohl das
als auch das probiertCode:thread.Reply(session, post, SectionPost.Settings.ShowSignature);
Code:thread.Reply(session, post);
Hab die Library mit dem NuGet Manager eingebunden und die müsste auch auf dem aktuellsten Stand sein.
EDIT: hab versucht das per Hand zu kompilieren nach Anleitung aus Internet, aber ich kriegs manuell nicht hin. :(
Könnt ihr das nochmal auf NuGet hochladen/updaten?
public List<SectionPost> Replies(Session session, uint pageCount = 1, uint firstPage = 1)
var threadURL = "http://www.elitepvpers.com/forum/metin2-trading/2935614-siriusmt2-verkaufe-accounts-eq-auf-siriusmt2-19.html";
// SubForum
var sectionName = threadURL.Split(new char[] { '/' })[4];
var sectionID = (int)0;
switch (sectionName)
{
case "say-hello": sectionID = 359; break; // Test
case "metin2-trading": sectionID = 470; break;
default:
Console.WriteLine("Default switch-case");
break;
}
Section section = new Section(sectionID, sectionName);
Console.WriteLine("Section.ID: " + section.ID);
Console.WriteLine("Section URL: " + section.UrlName);
var threadID = SectionThread.FromUrl(threadURL);
SectionThread thread = new SectionThread(threadID, section);
var replies = thread.Replies(session,2,2);
Console.WriteLine("Replies count: "+replies.Count());
Replies count: 9
// in case the amount of pages to fetch is greater than the available page count, set it to the maximum available count pageCount = (pageCount > PageCount && PageCount != 0) ? PageCount : pageCount;
SectionThread thread = new SectionThread(threadID, section); var replies = thread.Replies(session,2,2);
SectionThread thread = new SectionThread(threadID, section); thread.Update(); var replies = thread.Replies(session,2,2);
var replies = thread.Replies(session,2);
var replies = thread.Replies(session,3);
var replies = thread.Replies(session,999);
Hat in der Tat auch dort noch ein paar Unstimmigkeiten gegeben. Die Funktion wurde nie so wirklich getestet, daher kein Wunder.Quote:
Habs mal mit thread.Update(session); versucht. (Update-Methode hat ein Parameter vom Typ GuestSession verlangt, hab einfach die "normale" session genommen.)
Paar Beobachtungen die ich machen konnte:
1) variabler pageCount
Output von replies.Count: 19Code:var replies = thread.Replies(session,2);
Anzahl ist richtig, aber wenn man den reply.Content sich anschaut, dann sind es die ersten 9 Replies der 1. Seite (also ohne Initialpost) + nochmal die ersten 10 Posts der 1. Seite (hier mit Initialpost) = 19
Analog dann auch bei z.B.
Count: 29Code:var replies = thread.Replies(session,3);
Hier sind es wieder die selben 19 Posts + 10 Replies der 2. Seite = 29
=> Also anscheinend wird die 1. Seite irgendwie immer zweimal gescraped, wobei beim 2.Mal der InitialPost dazu kommt. Und es wird nur bis pageCount-1 gefetched.
(Ist der pageCount=1 standardmäßig, sind es die ersten 9 Replies wie erwartet)
2) maximaler pageCount
Mein Test-Thread hat 19 Pages und der letzte Post ist #187.Code:var replies = thread.Replies(session,999);
Output:
Replies Count : 189
Außerdem wird nur bis zur vorletzten Seite (hier: Page 18) gefetched, die letzte Seite (Page 19) wird anscheinend weggelassen.
Wie jetzt hier dieser Replies Count hier zusatnde kommt, weiß ich auch nicht so genau.
Hoffentlich helfen euch diese Beobachtungen weiter. :)
thread.Replies(session); thread.Replies(session,pageCount,firstPage);
thread.Replies(session,firstPage);
Jetzt sollte das auch wie gewünscht funktionieren.Quote:
Funktioniert :DCode:thread.Replies(session); thread.Replies(session,pageCount,firstPage);
Das funktioniert nicht so ganz wie es sollte denk ich.^^Code:thread.Replies(session,firstPage);
Hat ein ziemlich komisches Verhalten.
Output:
Der Replies.Count ist immer:
(Anzahl Replies von "firstPage" bis zur vor-letzten Seite) + ("firstPage" * Anzahl Replies auf letzter Seite des Thread)
Bsp.: Nehmen wir mal diesen Thread hier.
Mit meinem Post sind auf der letzten Seite (also der 5. Seite) 4 Replies.
thread.Replies(session,5) = 5 * 4 = 20
thread.Replies(session,3) = 10 (3. Seite) + 10 (4. Seite) + 3*4 (5. Seite) = 32
Der Reply.Content ist dann entsprechend dem Replies.Count