Worked around Radio's lame XML encoding support.
This commit is contained in:
parent
fa8a7eae02
commit
76bbb6e781
5 changed files with 85 additions and 94 deletions
118
LifeBlogger.iws
118
LifeBlogger.iws
|
@ -71,7 +71,7 @@
|
|||
<option name="PUT_FOCUS_INTO_COMMENT" value="true" />
|
||||
<option name="SHOW_CHECKIN_OPTIONS" value="true" />
|
||||
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Added ability to post to post via the Blogger API." />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Added Blogger API key. Added missing files." />
|
||||
<option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
|
||||
<option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
|
||||
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
||||
|
@ -112,7 +112,7 @@
|
|||
<option name="HIDE_WARNINGS" value="false" />
|
||||
</component>
|
||||
<component name="FileEditorManager" split-orientation="vertical" split-proportion="0.5">
|
||||
<first-group selected-file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifePost.java">
|
||||
<first-group selected-file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeRPCResponse.java">
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/post.xml" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="7" column="75" selection-start="534" selection-end="534" vertical-scroll-proportion="0.21834862">
|
||||
|
@ -131,7 +131,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeAction.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="50" column="11" selection-start="759" selection-end="759" vertical-scroll-proportion="1.0220183">
|
||||
<state line="50" column="11" selection-start="840" selection-end="840" vertical-scroll-proportion="1.0623853">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -140,7 +140,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeMediaObject.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="115" selection-start="1916" selection-end="1916" vertical-scroll-proportion="0.26972476">
|
||||
<state line="45" column="115" selection-start="1916" selection-end="1916" vertical-scroll-proportion="0.3119266">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -149,14 +149,14 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifePost.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="99" column="229" selection-start="3364" selection-end="3364" vertical-scroll-proportion="0.5302752">
|
||||
<state line="54" column="13" selection-start="2093" selection-end="2093" vertical-scroll-proportion="0.33211008">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeRPCResponse.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="60" column="11" selection-start="2171" selection-end="2171" vertical-scroll-proportion="0.14862385">
|
||||
<state line="50" column="13" selection-start="1963" selection-end="1963" vertical-scroll-proportion="0.33211008">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -165,7 +165,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeFTP.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="132" column="71" selection-start="3917" selection-end="3917" vertical-scroll-proportion="0.7963303">
|
||||
<state line="132" column="71" selection-start="3917" selection-end="3917" vertical-scroll-proportion="1.0201834">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -179,7 +179,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeBlogger.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="320" column="5" selection-start="7758" selection-end="7758" vertical-scroll-proportion="0.9798165">
|
||||
<state line="544" column="28" selection-start="13717" selection-end="13717" vertical-scroll-proportion="-6.187156">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -188,7 +188,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/ReleaseInfo.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="23" selection-start="413" selection-end="413" vertical-scroll-proportion="0.1559633">
|
||||
<state line="15" column="23" selection-start="413" selection-end="413" vertical-scroll-proportion="0.29174313">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -209,8 +209,8 @@
|
|||
<component name="J2EEProjectPane" />
|
||||
<component name="NamedScopeManager" />
|
||||
<component name="PackagesPane">
|
||||
<expanded_node url="net" module="LifeBlogger" type="package" />
|
||||
<expanded_node url="net.thauvin.lifeblogger" module="LifeBlogger" type="package" />
|
||||
<expanded_node url="net" module="LifeBlogger" type="package" />
|
||||
<expanded_node url="net.thauvin" module="LifeBlogger" type="package" />
|
||||
<expanded_node url="" module="LifeBlogger" type="module" />
|
||||
</component>
|
||||
|
@ -257,20 +257,6 @@
|
|||
<value defaultName="wholeProject" />
|
||||
</option>
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="Remote" factoryName="Remote">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" value="javadebug" />
|
||||
<option name="HOST" value="localhost" />
|
||||
<option name="PORT" value="5005" />
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<module name="" />
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="WebLogic Instance" factoryName="Local">
|
||||
<option name="WORKING_DIRECTORY" />
|
||||
<option name="HOST" value="localhost" />
|
||||
|
@ -285,6 +271,20 @@
|
|||
<option name="SERVER_NAME" value="myserver" />
|
||||
<option name="DOMAIN_NAME" value="mydomain" />
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<module name="" />
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="Remote" factoryName="Remote">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" value="javadebug" />
|
||||
<option name="HOST" value="localhost" />
|
||||
<option name="PORT" value="5005" />
|
||||
</configuration>
|
||||
<configuration selected="false" default="true" type="Applet" factoryName="Applet">
|
||||
<module name="" />
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
|
@ -301,14 +301,14 @@
|
|||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<module name="LifeBlogger" />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="1127" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="false" />
|
||||
</RunnerSettings>
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SelectInManager" />
|
||||
|
@ -364,13 +364,13 @@
|
|||
<window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="8" />
|
||||
<window_info id="Regex" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="9" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="7" />
|
||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.22959183" order="0" />
|
||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.23265307" order="0" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="1" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="1" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="10" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.69135803" order="6" x="66" y="104" width="924" height="583" />
|
||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="11" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.12040816" order="1" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.115306124" order="1" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33796296" order="2" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="2" />
|
||||
<window_info id="CVS File View" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="3" />
|
||||
|
@ -521,9 +521,18 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeBlog.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="52" column="22" selection-start="2083" selection-end="2083" vertical-scroll-proportion="0.5302752">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeAction.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="50" column="11" selection-start="759" selection-end="759" vertical-scroll-proportion="1.0220183">
|
||||
<state line="50" column="11" selection-start="840" selection-end="840" vertical-scroll-proportion="1.0623853">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -532,23 +541,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeMediaObject.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="115" selection-start="1916" selection-end="1916" vertical-scroll-proportion="0.26972476">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifePost.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="99" column="229" selection-start="3364" selection-end="3364" vertical-scroll-proportion="0.5302752">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeRPCResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="60" column="11" selection-start="2171" selection-end="2171" vertical-scroll-proportion="0.14862385">
|
||||
<state line="45" column="115" selection-start="1916" selection-end="1916" vertical-scroll-proportion="0.3119266">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -557,7 +550,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeFTP.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="132" column="71" selection-start="3917" selection-end="3917" vertical-scroll-proportion="0.7963303">
|
||||
<state line="132" column="71" selection-start="3917" selection-end="3917" vertical-scroll-proportion="1.0201834">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -569,31 +562,38 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeBlogger.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="320" column="5" selection-start="7758" selection-end="7758" vertical-scroll-proportion="0.9798165">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/ReleaseInfo.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="15" column="23" selection-start="413" selection-end="413" vertical-scroll-proportion="0.1559633">
|
||||
<state line="15" column="23" selection-start="413" selection-end="413" vertical-scroll-proportion="0.29174313">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeBlog.java">
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeRPCResponse.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="52" column="22" selection-start="2083" selection-end="2083" vertical-scroll-proportion="0.5302752">
|
||||
<state line="50" column="13" selection-start="1963" selection-end="1963" vertical-scroll-proportion="0.33211008">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifeBlogger.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="544" column="28" selection-start="13717" selection-end="13717" vertical-scroll-proportion="-6.187156">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/lifeblogger/LifePost.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="54" column="13" selection-start="2093" selection-end="2093" vertical-scroll-proportion="0.33211008">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
||||
|
||||
|
|
|
@ -542,7 +542,7 @@ public class LifeBlogger extends Thinlet
|
|||
setString(find(post, "password"), "text", new String(Base64.decode(_prefs.getProperty("blog-password", ""))));
|
||||
setString(find(post, "entry"), "text",
|
||||
"<img src=\"" + url + "\" alt=\"" + filename +
|
||||
"\">\n<p>via <a href=\"http://www.thauvin.net/erik/lifeblogger/\">LifeBlogger</a></p>");
|
||||
"\">\r<p>via <a href=\"http://www.thauvin.net/erik/lifeblogger/\">LifeBlogger</a></p>");
|
||||
add(post);
|
||||
}
|
||||
catch (Exception e)
|
||||
|
|
|
@ -98,13 +98,13 @@ public class LifePost extends LifeAction
|
|||
|
||||
final StringBuffer request =
|
||||
new StringBuffer("<?xml version=\"1.0\"?><methodCall><methodName>blogger.newPost</methodName><params><param><value><string>0a6afffffffaffffffb8ffffff8569474cffffffc778500c03ffffffecffffff876116565a27283bffffffda56</string></value></param><param><value><string>").append(_blogID)
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(getLogin())
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(getPassword())
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(textToXML(_blogEntry))
|
||||
.append("</string></value></param><param><value><boolean>false</boolean></value></param></params></methodCall>");
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(getLogin())
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(getPassword())
|
||||
.append("</string></value></param><param><value><string>")
|
||||
.append(textToXML(_blogEntry))
|
||||
.append("</string></value></param><param><value><boolean>false</boolean></value></param></params></methodCall>");
|
||||
final URLConnection urlConn = url.openConnection();
|
||||
urlConn.setDoInput(true);
|
||||
urlConn.setDoOutput(true);
|
||||
|
@ -117,6 +117,8 @@ public class LifePost extends LifeAction
|
|||
dos.flush();
|
||||
dos.close();
|
||||
|
||||
System.out.println(request);
|
||||
|
||||
final LifeRPCResponse xmlrpc = new LifeRPCResponse(urlConn.getInputStream());
|
||||
|
||||
if (xmlrpc.isValidResponse())
|
||||
|
@ -157,38 +159,20 @@ public class LifePost extends LifeAction
|
|||
return ("<");
|
||||
}
|
||||
|
||||
// Convert left bracket
|
||||
else if (ch == '>')
|
||||
{
|
||||
return (">");
|
||||
}
|
||||
|
||||
// Convert ampersand
|
||||
else if (ch == '&')
|
||||
{
|
||||
return ("&");
|
||||
}
|
||||
|
||||
// High-ASCII character
|
||||
else if (ch >= 128)
|
||||
// High/Low-ASCII character
|
||||
else if (ch >= 128 || ch < 32)
|
||||
{
|
||||
c = (int) ch;
|
||||
|
||||
return ("&#" + c + ';');
|
||||
}
|
||||
|
||||
// Convert double quote
|
||||
else if (ch == '"')
|
||||
{
|
||||
return (""");
|
||||
}
|
||||
|
||||
// Convert single quote
|
||||
else if (ch == '\'')
|
||||
{
|
||||
return ("'");
|
||||
}
|
||||
|
||||
// No conversion
|
||||
else
|
||||
{
|
||||
|
|
|
@ -98,7 +98,14 @@ public class LifeRPCResponse extends Thinlet
|
|||
{
|
||||
final Object string = getDOMNode(value, "string", 0);
|
||||
|
||||
_response = getDOMText(string);
|
||||
if (string == null)
|
||||
{
|
||||
_response = getDOMText(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_response = getDOMText(string);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Created by JReleaseInfo AntTask from Open Source Competence Group */
|
||||
/* Creation date Sat Jul 24 05:15:28 PDT 2004 */
|
||||
/* Creation date Sat Jul 24 07:57:19 PDT 2004 */
|
||||
package net.thauvin.lifeblogger;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -12,21 +12,21 @@ import java.util.Date;
|
|||
public class ReleaseInfo {
|
||||
|
||||
|
||||
/** buildDate (set during build process to 1090671328718L). */
|
||||
private static Date buildDate = new Date(1090671328718L);
|
||||
/** buildDate (set during build process to 1090681039640L). */
|
||||
private static Date buildDate = new Date(1090681039640L);
|
||||
|
||||
/**
|
||||
* Get buildDate (set during build process to Sat Jul 24 05:15:28 PDT 2004).
|
||||
* Get buildDate (set during build process to Sat Jul 24 07:57:19 PDT 2004).
|
||||
* @return Date buildDate
|
||||
*/
|
||||
public static final Date getBuildDate() { return buildDate; }
|
||||
|
||||
|
||||
/**
|
||||
* Get buildNumber (set during build process to 107).
|
||||
* Get buildNumber (set during build process to 110).
|
||||
* @return int buildNumber
|
||||
*/
|
||||
public static final int getBuildNumber() { return 107; }
|
||||
public static final int getBuildNumber() { return 110; }
|
||||
|
||||
|
||||
/** version (set during build process to "0.1.0"). */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue