Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Coding Releases
You last visited: Today at 15:27

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] epvpapi - .NET Library für elitepvpers

Discussion on [Release] epvpapi - .NET Library für elitepvpers within the Coding Releases forum part of the Coders Den category.

Reply
 
Old 01/05/2015, 03:14   #31


 
elite*gold: 157
Join Date: May 2010
Posts: 2,120
Received Thanks: 504
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.
AkinCooperation is offline  
Old 02/06/2015, 07:24   #32
 
elite*gold: 0
Join Date: Jan 2015
Posts: 179
Received Thanks: 59
Quote:
Originally Posted by Ryu IV View Post
Danke. Mangelnde Aufmerksamkeit. :l



Jetzt auch mit drin.
warum wandelst du das passwort nicht einfach selbst beim login um. Sowas als extraaufgabe für den Benutzer zu machen ist einfach beschissen.
lolιcon is offline  
Old 02/06/2015, 09:43   #33



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,291
Received Thanks: 3,611
Das wäre doch viel zu einfach.

Afaik braucht man übrigens auch nicht mehr die UserID zum einloggen, bin mir da gerade nicht mehr ganz sicher.

Lg
Shawak is offline  
Old 02/06/2015, 10:18   #34



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Nein, wird auch nicht benötigt.
Serraniel is offline  
Old 03/07/2015, 15:08   #35

 
iDeliver's Avatar
 
elite*gold: 120
Join Date: Feb 2010
Posts: 1,105
Received Thanks: 73
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?

Code:
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
Die Signatur wird bei einer Reply nicht angezeigt.

Ist der dritte Parameter so richtig gesetzt?
iDeliver is offline  
Old 03/07/2015, 17:07   #36


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by iDeliver View Post
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?

Code:
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
Die Signatur wird bei einer Reply nicht angezeigt.

Ist der dritte Parameter so richtig gesetzt?
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.

PS: ShowSignature ist ein Standardflag, theoretisch kannst du es auch einfach weglassen.
Mostey is offline  
Thanks
1 User
Old 03/07/2015, 19:18   #37



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,291
Received Thanks: 3,611
Sollte behoben sein, kannst du es erneut ausprobieren?
Shawak is offline  
Thanks
2 Users
Old 03/07/2015, 20:52   #38

 
iDeliver's Avatar
 
elite*gold: 120
Join Date: Feb 2010
Posts: 1,105
Received Thanks: 73
Quote:
Originally Posted by Shawak View Post
Sollte behoben sein, kannst du es erneut ausprobieren?
Also bei mir funktioniert es immer noch nicht.
Der Aufruf bleibt gleich, oder?

Habe sowohl das
Code:
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
als auch das probiert
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?
iDeliver is offline  
Old 03/07/2015, 22:51   #39


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by iDeliver View Post
Also bei mir funktioniert es immer noch nicht.
Der Aufruf bleibt gleich, oder?

Habe sowohl das
Code:
thread.Reply(session, post, SectionPost.Settings.ShowSignature);
als auch das probiert
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?
Der Aufruf bleibt gleich. Du hast nicht den neusten Source, deshalb geht es immer noch nicht.

NuGet bietet derzeit die aktuellste Version an aber wir haben in der Zwischenzeit einiges geändert, was (noch) nicht offiziell als neue Version veröffentlicht wurde. Bei dieser kleinen Änderungen würde ein Release ohnehin keinen Sinn ergeben. 1.2 kommt, wenn genug Änderungen eingespielt wurden. Somit müsstest du entweder direkt den Code aus dem Repository ziehen und selbst kompilieren wenn du die neuesten Änderungen haben möchtest oder du wartest bis zur nächsten Version.

Was bekommst du bei der Kompilierung nicht hin? Sollte mit VS 2013 eigentlich überhaupt kein Thema sein. Downloaden, entpacken, Solution öffnen und oben auf Build drücken. Danach einfach nur den Output aus dem bin Ordner (also die DLL) referenzieren - fertig.
Mostey is offline  
Thanks
1 User
Old 03/09/2015, 13:18   #40

 
iDeliver's Avatar
 
elite*gold: 120
Join Date: Feb 2010
Posts: 1,105
Received Thanks: 73
Im Internet stand immer nur, dass man über die Kommandozeile kompiliert und das hatte ich nicht hinbekommen...wusste nicht dass das doch so einfach ist.^^

Hab die neueste Source jetzt und Reply mit Signatur funktioniert. Danke

----------------------------------------------------------
EDIT:

Die "SectionThread.Replies" Funktion scheint nicht zu klappen.
Code:
public List<SectionPost> Replies(Session session, uint pageCount = 1, uint firstPage = 1)
Diese holt nur die Replies von der ersten Seite auch wenn der Parameter "pageCount" auf z.B. 2 gesetzt ist. Das gleiche verhält es sich mit dem Parameter "firstPage".

Hier mal ein Beispiel-Code den ich benutzt hab:
Code:
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());
Output:
Code:
Replies count: 9
Dass das Setzen des Parameters "firstPage" auch keine Veränderung bringt, habe ich mit "reply.Content" nachgeschaut (was im obigen Code nicht drin ist). Es sind nach wie vor nur die Replies der 1. Seite gefetched.


Falls kein Fehler in der Benutzung des Aufrufs liegt, wäre es super, wenn ihr da mal nachgucken könntet.
iDeliver is offline  
Old 03/09/2015, 13:35   #41


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Oh ja, da gibt es einen Logikfehler. Folgendes führt zu diesem Problem:

Code:
 // 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;
Wenn du vorher nicht thread.Update() aufrufst, wird die Seitenzahl nicht geändert und diese ist Standardmäßig 1. In diesem Fall kannst du in die Funktion passen was du möchtest, die Seitenzahl wird immer auf 1 zurückgesetzt.

Das ist unklug gelöst, ich werde das mal vormerken und mir was dazu ausdenken. Merk' dir bis dahin einfach:

Statt

Code:
SectionThread thread = new SectionThread(threadID, section);
var replies = thread.Replies(session,2,2);
muss

Code:
SectionThread thread = new SectionThread(threadID, section);
thread.Update();            
var replies = thread.Replies(session,2,2);
genutzt werden.
Mostey is offline  
Thanks
1 User
Old 03/09/2015, 17:14   #42

 
iDeliver's Avatar
 
elite*gold: 120
Join Date: Feb 2010
Posts: 1,105
Received Thanks: 73
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

Code:
var replies = thread.Replies(session,2);
Output von replies.Count: 19

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.
Code:
var replies = thread.Replies(session,3);
Count: 29
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

Code:
var replies = thread.Replies(session,999);
Mein Test-Thread hat 19 Pages und der letzte Post ist #187.

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.
iDeliver is offline  
Thanks
1 User
Old 03/09/2015, 18:32   #43


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by iDeliver View Post
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

Code:
var replies = thread.Replies(session,2);
Output von replies.Count: 19

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.
Code:
var replies = thread.Replies(session,3);
Count: 29
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

Code:
var replies = thread.Replies(session,999);
Mein Test-Thread hat 19 Pages und der letzte Post ist #187.

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.
Hat in der Tat auch dort noch ein paar Unstimmigkeiten gegeben. Die Funktion wurde nie so wirklich getestet, daher kein Wunder.

Sollte nun alles funktionieren, habe als Beispiel mal diesen Thread hier genommen und nach dem Fix lief alles wie erwartet.

Die Änderungen kannst du hier herunterladen:

Das ist nicht der Masterbranch, daher ist es besonders wichtig, dass du den Source von oben angegebenem Link herunterlädst (oder du navigierst in GitHub direkt zum sectionthread_replies_fix Branch) und lädst es dort herunter.

€: Habe auch mal eine nette Funktionsüberladung hinzugefügt. Probier mal thread.Replies(session) aus, aber nehm keinen Thread mit 500 Antworten. ;O
Mostey is offline  
Old 03/10/2015, 00:47   #44

 
iDeliver's Avatar
 
elite*gold: 120
Join Date: Feb 2010
Posts: 1,105
Received Thanks: 73
Code:
thread.Replies(session); 

thread.Replies(session,pageCount,firstPage);
Funktioniert


Code:
thread.Replies(session,firstPage);
Das funktioniert nicht so ganz wie es sollte denk ich.^^
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
iDeliver is offline  
Old 03/10/2015, 16:49   #45


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by iDeliver View Post
Code:
thread.Replies(session); 

thread.Replies(session,pageCount,firstPage);
Funktioniert


Code:
thread.Replies(session,firstPage);
Das funktioniert nicht so ganz wie es sollte denk ich.^^
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
Jetzt sollte das auch wie gewünscht funktionieren.
Mostey is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[DLL] Elitepvpers Library v2
03/06/2015 - Coding Releases - 240 Replies
.



All times are GMT +2. The time now is 15:27.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.