L2TimeMachine Posted June 9, 2018 Posted June 9, 2018 hello i`ve got problem with a automatic vote system for hopzone. It worked at my last server but now... Sh1t happends... Topzone and l2network works fine but hopzone is not. Got all the time: I am trying to put every url`s what i can ito a powerpark config, this one is most close to be fine: # Hopzone: http://l2.hopzone.net VotesSiteHopZoneUrl = https://api.hopzone.net/lineage2/votes?token=UscplMw9V7DSTok3 # Topzone: http://l2topzone.com VotesSiteTopZoneUrl = http://l2topzone.com/tv.php?id=15459 # --------------------------------------- VotesSystemNetworkDelay = 300000 # L2Network: http://l2network.eu VotesSiteL2NetworkUrl = https://l2network.eu/details/L2TimeMachine/ Can someone help me with it?
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 3 minutes ago, SweeTs said: Long story short, you should trash that code. It's old and shitty using gargoyle, lol. True, but it still works with another vote sites so with hopzone should not?
0 Solomun Posted June 10, 2018 Posted June 10, 2018 1 minute ago, L2TimeMachine said: I am using Windows Server 2016 Check your votefile.properties file encoding.
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 1 minute ago, Solomun said: Check your votefile.properties file encoding. Encoding in ANSI -_-
0 Solomun Posted June 10, 2018 Posted June 10, 2018 (edited) 5 minutes ago, L2TimeMachine said: True, but it still works with another vote sites so with hopzone should not? Depends. Like i said HtmlUnit looks for classes or attributes right? Let's say, the class the hopzone stores its votes, is named like <div class="voteclass">1500</div> right? Then you will set HtmlUnit look for voteclass and u get the votes. But when you mess with Kadar (hopzone owner) he is changing the class name every now and then, just to mess with people vote reward systems. So the class is named, lets say, voteclas now. You must change Html Unit Configuration, to search for voteclas, instead of voteclass. l2 network and topzone didnt change so often, so...reward systems are still working Edited June 10, 2018 by Solomun
0 Solomun Posted June 10, 2018 Posted June 10, 2018 1 minute ago, L2TimeMachine said: Encoding in ANSI -_- Change it to UTF-8 and re-paste the URL of your server's details.
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 1 minute ago, Solomun said: Change it to UTF-8 and re-paste the URL of your server's details. i did. Same problem... Loks like i must to change a diff ;/
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 4 minutes ago, Solomun said: Depends. Like i said HtmlUnit looks for classes or attributes right? Let's say, the class the hopzone stores its votes, is named like <div class="voteclass">1500</div> right? Then you will set HtmlUnit look for voteclass and u get the votes. But when you mess with Kadar (hopzone owner) he is changing the class name every now and then, just to mess with people vote reward systems. So the class is named, lets say, voteclas now. You must change Html Unit Configuration, to search for voteclas, instead of voteclass. l2 network and topzone didnt change so often, so...reward systems are still working ahhh i understund
0 Solomun Posted June 10, 2018 Posted June 10, 2018 8 minutes ago, L2TimeMachine said: i did. Same problem... Loks like i must to change a diff ;/ Can you show us the code you read the votes of the link?
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 (edited) protected int getHopZoneVotes() { int votes = -1; try { final WebClient webClient = new WebClient(BrowserVersion.CHROME); webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setPrintContentOnFailingStatusCode(false); final HtmlPage page = webClient.getPage(PowerPakConfig.VOTES_SITE_HOPZONE_URL); final String fullPage = page.asXml(); final int constrainA = fullPage.indexOf("rank anonymous tooltip") + 24; String voteSection = fullPage.substring(constrainA); final int constrainB = voteSection.indexOf("span") - 2; voteSection = voteSection.substring(0, constrainB).trim(); votes = Integer.parseInt(voteSection); // Try to free all the freaking resources page.cleanUp(); webClient.getJavaScriptEngine().shutdown(); webClient.closeAllWindows(); } catch (final Exception e) { LOGGER.warn("[AutoVoteReward] Server HOPZONE is offline or something is wrong in link", e); Announcements.getInstance().gameAnnounceToAll("[AutoVoteReward] HOPZONE is offline. We will check reward as it will be online again"); } return votes; } Edited... Was wrong Edited June 10, 2018 by L2TimeMachine
0 Solomun Posted June 10, 2018 Posted June 10, 2018 (edited) Try to change Quote try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) to: Quote try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(),StandardCharsets.UTF_8))) Edited June 10, 2018 by Solomun
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 1 minute ago, Solomun said: Try to change to: First one code was a wrong i made a copy/peste mistake. Now is edited to correct. What ive got in
0 melron Posted June 10, 2018 Posted June 10, 2018 (edited) public static void main(String[] args) { System.out.println(getHopZoneVotes()); } public static int getHopZoneVotes() { int votes = 0; boolean lineFound = false; try { URL url = new URL("https://l2.hopzone.net/lineage2/details/102978/L2TimeMachine"); InputStream is = url.openStream(); try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) { String line; while ((line = br.readLine()) != null) { if (line.contains("<span class=\"rank tooltip\" title")) { lineFound = true; votes = Integer.valueOf(line.split(">")[2].replace("</span", "")); } } } } catch (IOException e) { System.out.println("Something went wrong while trying get votes from HopZone"); } if (!lineFound) System.out.println("The line wasn't found in HopZone, check site in case they updated."); return votes; } 9 Edited June 10, 2018 by melron
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 5 minutes ago, melron said: public static void main(String[] args) { System.out.println(getHopZoneVotes()); } public static int getHopZoneVotes() { int votes = 0; boolean lineFound = false; try { URL url = new URL("https://l2.hopzone.net/lineage2/details/102978/L2TimeMachine"); InputStream is = url.openStream(); try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) { String line; while ((line = br.readLine()) != null) { if (line.contains("<span class=\"rank tooltip\" title")) { lineFound = true; votes = Integer.valueOf(line.split(">")[2].replace("</span", "")); } } } } catch (IOException e) { System.out.println("Something went wrong while trying get votes from HopZone"); } if (!lineFound) System.out.println("The line wasn't found in HopZone, check site in case they updated."); return votes; } 9 It Willwork without config right?
0 melron Posted June 10, 2018 Posted June 10, 2018 Just now, L2TimeMachine said: It Willwork without config right? you can replace the link with your config
0 L2TimeMachine Posted June 10, 2018 Author Posted June 10, 2018 Just now, melron said: you can replace the link with your config Thats nice, thank you mate!
Question
L2TimeMachine
hello i`ve got problem with a automatic vote system for hopzone. It worked at my last server but now... Sh1t happends...
Topzone and l2network works fine but hopzone is not.
Got all the time:
I am trying to put every url`s what i can ito a powerpark config, this one is most close to be fine:
# Hopzone: http://l2.hopzone.net VotesSiteHopZoneUrl = https://api.hopzone.net/lineage2/votes?token=UscplMw9V7DSTok3 # Topzone: http://l2topzone.com VotesSiteTopZoneUrl = http://l2topzone.com/tv.php?id=15459 # --------------------------------------- VotesSystemNetworkDelay = 300000 # L2Network: http://l2network.eu VotesSiteL2NetworkUrl = https://l2network.eu/details/L2TimeMachine/
Can someone help me with it?
40 answers to this question
Recommended Posts