Author |
Message |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Sun Nov 10, 2013 12:37 pm |

|
Hi
I am trying to extract this feed : http://ws.audioscrobbler.com/1.0/user/haveyoumetced/recenttracks.rss to put it on my tumblr website
To do so, I tried to run the script with Google App Engine, enabling PHP support with Quercus (Java implementation of PHP)
'PHP' seems to be functional but I can't build the URL of the parsed RSS feed with the rss2html.php script : hymcedphpwithjava.appspot.com
Is this possible without enabling Billing ?
Many thx for your help on that, I'm not an expert at all !
Here is the log :
109.209.118.177 - - [10/Nov/2013:08:38:45 -0800] "POST /rss2html.php HTTP/1.1" 500 0 "http://hymcedphpwithjava.appspot.com/rss2html.php?buildURL" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" "hymcedphpwithjava.appspot.com" ms=703 cpu_ms=216 app_engine_release=1.8.7 instance=00c61b117ccc223c8c54d45bad474d21ae6db55b
W2013-11-10 08:38:45.641
/rss2html.php
com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: The Socket API will be enabled for this application once billing has been enabled in the admin console.
at java.lang.Thread.getStackTrace(Thread.java:1568)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:107)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:56)
at com.google.appengine.api.socket.SocketApiHelper.apiProxyMakeSyncCall(SocketApiHelper.java:90)
at com.google.appengine.api.socket.SocketApiHelper.makeSyncCall(SocketApiHelper.java:58)
at com.google.appengine.api.socket.NameServiceImpl.lookupAllHostAddr(NameServiceImpl.java:61)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1388)
at java.net.InetAddress.getAllByName0(InetAddress.java:1341)
at java.net.InetAddress.getAllByName(InetAddress.java:1255)
at java.net.InetAddress.getAllByName(InetAddress.java:1186)
at java.net.InetAddress.getByName(InetAddress.java:1136)
at java.net.InetSocketAddress.(InetSocketAddress.java:220)
at java.net.Socket.(Socket.java:217)
at com.caucho.quercus.lib.NetworkModule.fsockopen(NetworkModule.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:45)
at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:120)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:615)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:488)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
at com.caucho.quercus.expr.SuppressErrorExpr.evalCopy(SuppressErrorExpr.java:145)
at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.call(Function.java:274)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.call(Function.java:274)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.callCopy(Function.java:279)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
at com.caucho.quercus.expr.EqualsExpr.evalBoolean(EqualsExpr.java:64)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:74)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:163)
at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
at java.lang.Thread.run(Thread.java:724)
Caused by: com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: The Socket API will be enabled for this application once billing has been enabled in the admin console.
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher$1.runInContext(RpcStub.java:828)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.runCallback(RpcStub.java:866)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.rpcFinished(RpcStub.java:876)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.success(RpcStub.java:855)
at com.google.net.rpc3.impl.client.RpcClientInternalContext.runCallbacks(RpcClientInternalContext.java:1010)
at com.google.net.rpc3.impl.client.RpcClientInternalContext.finishRpcAndNotifyApp(RpcClientInternalContext.java:915)
W2013-11-10 08:38:45.641
at com.google.net.rpc3.impl.client.RpcNetChannel.afterFinishingActiveRpc(RpcNetChannel.java:1322)
at com.google.net.rpc3.impl.client.RpcNetChannel.finishRpc(RpcNetChannel.java:1153)
at com.google.net.rpc3.impl.client.RpcNetChannel.handleResponse(RpcNetChannel.java:2770)
at com.google.net.rpc3.impl.client.RpcNetChannel.messageReceived(RpcNetChannel.java:2521)
at com.google.net.rpc3.impl.client.RpcNetChannel.access$2300(RpcNetChannel.java:169)
at com.google.net.rpc3.impl.client.RpcNetChannel$TransportCallback.receivedMessage(RpcNetChannel.java:3710)
at com.google.net.rpc3.impl.client.RpcChannelTransportData$TransportCallback.receivedMessage(RpcChannelTransportData.java:654)
at com.google.net.rpc3.impl.wire.RpcBaseTransport.receivedMessage(RpcBaseTransport.java:444)
at com.google.net.eventmanager.AbstractFutureTask$Sync.innerRun(AbstractFutureTask.java:260)
at com.google.net.eventmanager.AbstractFutureTask.run(AbstractFutureTask.java:121)
at com.google.net.eventmanager.EventManagerImpl.runTask(EventManagerImpl.java:584)
at com.google.net.eventmanager.EventManagerImpl.internalRunWorkerLoop(EventManagerImpl.java:999)
at com.google.net.eventmanager.EventManagerImpl.runWorkerLoop(EventManagerImpl.java:881)
at com.google.net.eventmanager.WorkerThreadInfo.runWorkerLoop(WorkerThreadInfo.java:160)
at com.google.net.eventmanager.EventManagerImpl$WorkerThread.run(EventManagerImpl.java:1854)
C2013-11-10 08:38:45.652
Uncaught exception from servlet
com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: The Socket API will be enabled for this application once billing has been enabled in the admin console.
at java.lang.Thread.getStackTrace(Thread.java:1568)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:107)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:56)
at com.google.appengine.api.socket.SocketApiHelper.apiProxyMakeSyncCall(SocketApiHelper.java:90)
at com.google.appengine.api.socket.SocketApiHelper.makeSyncCall(SocketApiHelper.java:58)
at com.google.appengine.api.socket.NameServiceImpl.lookupAllHostAddr(NameServiceImpl.java:61)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1388)
at java.net.InetAddress.getAllByName0(InetAddress.java:1341)
at java.net.InetAddress.getAllByName(InetAddress.java:1255)
at java.net.InetAddress.getAllByName(InetAddress.java:1186)
at java.net.InetAddress.getByName(InetAddress.java:1136)
at java.net.InetSocketAddress.(InetSocketAddress.java:220)
at java.net.Socket.(Socket.java:217)
at com.caucho.quercus.lib.NetworkModule.fsockopen(NetworkModule.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:45)
at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:120)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:615)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:488)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
at com.caucho.quercus.expr.SuppressErrorExpr.evalCopy(SuppressErrorExpr.java:145)
at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.call(Function.java:274)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.call(Function.java:274)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.Function.callImpl(Function.java:334)
at com.caucho.quercus.program.Function.callCopy(Function.java:279)
at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
at com.caucho.quercus.expr.EqualsExpr.evalBoolean(EqualsExpr.java:64)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:74)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78)
at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:163)
at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
at java.lang.Thread.run(Thread.java:724)
Caused by: com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: The Socket API will be enabled for this application once billing has been enabled in the admin console.
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher$1.runInContext(RpcStub.java:828)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.runCallback(RpcStub.java:866)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.rpcFinished(RpcStub.java:876)
at com.google.net.rpc3.client.RpcStub$RpcCallbackDispatcher.success(RpcStub.java:855)
at com.google.net.rpc3.impl.client.RpcClientInternalContext.runCallbacks(RpcClientInternalContext.java:1010)
at com.google.net.rpc3.impl.client.RpcClientInternalContext.finishRpcAndNotifyApp(RpcClientInternalContext.java:915)
at c...(length 9587)
|
|
|
 |
 |
Tech Support
Joined: 27 Aug 2004
Posts: 2692
|
Posted: Mon Nov 11, 2013 1:05 pm |

|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Mon Nov 11, 2013 1:26 pm |

|
|
 |
 |
Tech Support
Joined: 27 Aug 2004
Posts: 2692
|
Posted: Mon Nov 11, 2013 1:38 pm |

|
When I try to have the feed translated, I get a "500 Internal Server Error" from the web server. The 500 Internal Server Error is a very general HTTP status code that means something has gone wrong on the web site's server but the server could not be more specific on what the exact problem is.
Most of the time, "gone wrong" means an issue with the page or site's programming, nothing you have anything to do with. As such, unfortunately, there really isn't anything we can do to directly help... the issue is with the web server that's hosting your PHP script.
|
_________________
Create RSS Feeds
Audio Recording and Editing
|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Mon Nov 11, 2013 1:43 pm |

|
Yeah I tired to repport this to the Google App Engine support team, but my question has been approved yet :S
Can you tell me more about the spec needed by the server except that it must be able to run PHP ?
|
|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Mon Nov 11, 2013 1:44 pm |

|
|
 |
 |
Tech Support
Joined: 27 Aug 2004
Posts: 2692
|
Posted: Tue Nov 12, 2013 3:10 pm |

|
RSS2HTML works on servers with PHP version up to 5.3. The PHP installation must also support fopen or curl commands for retrieving the feeds.
Other than that, nothing much special.
|
_________________
Create RSS Feeds
Audio Recording and Editing
|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Wed Nov 13, 2013 4:36 am |

|
so that libraries must be installed on the server ? Correct me if I'm wrong but I assume they are not with what I have done so far.
|
|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Wed Nov 13, 2013 4:37 am |

|
Another thing : is it possible in the settings to modify the updating rate of the feed ? A maximum ?
|
|
|
 |
 |
Tech Support
Joined: 27 Aug 2004
Posts: 2692
|
Posted: Wed Nov 13, 2013 8:44 am |

|
All version of PHP include fopen and curl, you just have to verify with you web host that at least one of them are enabled in their PHP installation. Some hosting providers disable fopen, for example.
You can add caching to rss2html to reduce the amount of times that the source feed is accessed.
More info here:
http://www.feedforall.com/rss-cache.htm
|
_________________
Create RSS Feeds
Audio Recording and Editing
|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Wed Nov 13, 2013 10:10 am |

|
|
 |
 |
hymced
Joined: 10 Nov 2013
Posts: 8
|
Posted: Wed Nov 13, 2013 10:15 am |

|
I don't understand anything ! I found here that PHP 5.4 is enabled in Google App Engine... and fopen function too !
|
|
|
 |
 |
|