Difference between revisions of "User:Philmasterplus/Sandbox"

From Kolmafia
Jump to navigation Jump to search
(Replaced content with "Nothing to see here, move along.")
Tag: Replaced
 
Line 1: Line 1:
<onlyinclude>{{{{{format|Function2}}}
+
Nothing to see here, move along.
|name=User:Philmasterplus/Sandbox
 
|function1.return_type=buffer
 
|function1.description=Returns the original HTML source of the page being overridden inside a relay override script.
 
|function2.return_type=buffer
 
|function2.description=Visits a web page and returns its HTML source.
 
|function2.param1=url
 
|function2.param1.type=string
 
|function2.param1.description=URL of the page to visit. If a relative URL is provided, it is treated as an in-game page.
 
|function2.param2=use_POST
 
|function2.param2.type=boolean
 
|function2.param2.optional=yes
 
|function2.param2.default=true
 
|function2.param2.description=If <code>true</code>, makes an HTTP POST request when visiting the URL. Otherwise, makes a GET request.
 
|function2.param3=encoded
 
|function2.param3.type=boolean
 
|function2.param3.optional=yes
 
|function2.param3.default=false
 
|function2.param3.description=If <code>true</code>, KoLmafia assumes that <code>url</code> has already been [[wikipedia:Percent-encoding|URL-encoded]] and will not encode it.
 
|description=
 
<p>Returns the HTML from the visited page (not just what is displayed when visiting the page, but all markup) by performing a POST request if {{pspan|use_POST}} is omitted or true, or a GET request if false. Note that for addresses inside of KoL, it is only necessary to supply the page name for {{pspan|page}}, and KoLmafia will populate the rest of the url. However, pages outside of KoL require the full url to be supplied for {{pspan|page}}.</p>
 
 
 
<p>The version with no parameters is only meaningful in a relay override script; it retrieves the server page that your script is overriding.  All four versions behave slightly differently in a relay script; they retrieve a version of the page with any KoLmafia decorations added, rather than the raw page from the server.</p>
 
 
 
<p>In a POST request, if &pwd is part of the {{pspan|page}} string, it will automatically be replaced by &pwd=###### where ###### is the password hash for the current session. For a GET request the password hash will not be added so you'll want to use {{f|my_hash}}.</p>
 
|code1={{CodeSample
 
  |title=Code Samples
 
  |description=Visits your private character sheet.
 
  |code=
 
<syntaxhighlight lang="java">
 
visit_url( "charsheet.php" );
 
</syntaxhighlight>}}
 
|code2={{CodeSample
 
  |description=Visits Google.
 
  |code=
 
<syntaxhighlight lang="java">
 
visit_url( "http://www.google.com/");
 
</syntaxhighlight>}}
 
|code3={{CodeSample
 
  |description=Given a player ID, parse a player's profile for his name.
 
  |code=
 
<syntaxhighlight lang="java">
 
string [int] getPlayerName( int playerID ) {
 
  string playerName;
 
 
 
  // use visit_url() to store the player profile's HTML in a string
 
  string playerProfile = visit_url("showplayer.php?who=" + playerID);
 
  if ( contains_text(playerProfile, "<td>Sorry, this player could not be found.</td>") ) {
 
      print("Player " + playerID + "does not exist.","red");
 
      return "";
 
  }
 
  // find player name in the string returned by visit_url()
 
  matcher match_name = create_matcher("<b>([^<]+)</b> \\(#" + playerID + "\\)<br>", playerProfile);
 
  if ( match_name.find() ) {
 
      playerName = match_name.group(1);
 
  }
 
  else {
 
      print("Problem occurred while parsing for player name","red");
 
      return "";
 
  }
 
 
 
  return playerName;
 
}
 
</syntaxhighlight>}}
 
|see_also={{SeeAlso|make_url|run_choice}}
 
|cli_equiv=The CLI commands "text", or "http:" will also visit specified urls.
 
|more_info=Note that this function returns an empty string if the page does not exist or if the request times out.
 
|special=Some people claim that it is better to [[append|append]] the result of this function to a buffer instead of saving it as a string when dealing with an especially large page to avoid time-out. This claim appears to be purely circumstantial and unsupported by the mafia's code.
 
|{{{1|}}}
 
}}</onlyinclude>
 
[[Category:Adventuring]]
 

Latest revision as of 13:25, 20 December 2020

Nothing to see here, move along.