User:Philmasterplus/Sandbox: Difference between revisions

From Kolmafia
Jump to navigation Jump to search
No edit summary
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.