1. Wxeuphoria network functionality
- Posted by Jason Gade <jaygade at yahoo.com> Jan 21, 2006
- 529 views
Matt, Are the wxeuporia routines for downloading files work yet? Could I use wxeuphoria to download an internet file or should I stick with calling wget for now? -- "The author regrets that he is unable to reconcile himself to the thoughtful point of view you have expressed. However, it must be kept in mind that being raised in different cultures and different places can result in such differences of viewpoint between individuals. The author is from planet Earth." [author unknown] j.
2. Re: Wxeuphoria network functionality
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Jan 21, 2006
- 462 views
Jason Gade wrote: > > Matt, > > Are the wxeuporia routines for downloading files work yet? > > Could I use wxeuphoria to download an internet file or should I stick with > calling > wget for now? > I've had success with them. I was downloading the Euforum text file and converting it into an rss file. Here is the routine I used to get the file:
procedure on_timer( atom this, atom event_type, atom id, atom event ) atom url, stream integer fn sequence path, current path = get_text_value( file_name ) fn = open( path, "w" ) if fn = -1 then -- error opening the file, should post an error message to the user return end if url = create( wxURL, "http://www.listfilter.com/mlist/current.txt" ) stream = get_url_input( url ) if stream then current = stream_read( stream ) puts( fn, "<?xml version='1.0' encoding='utf-8' ?>\n" ) puts( fn, "<rss version=\"2.0\">\n" ) puts( fn, "<channel>\n") puts( fn, "<title>EuForum</title>\n" ) puts( fn, "<link>http://www.listfilter.com/EuForum</link>\n" ) puts( fn, "<description>EuForum RSS Feed - Official Euphoria Message Board</description>\n" ) to_rss( fn, current ) puts( fn, "</channel>\n</rss>\n" ) delete_instance( stream ) else puts(2, "Stream failed!\n") end if delete_instance( url ) close(fn) end procedure
Matt Lewis
3. Re: Wxeuphoria network functionality
- Posted by Jason Gade <jaygade at yahoo.com> Jan 21, 2006
- 487 views
Matt Lewis wrote: > > Jason Gade wrote: > > > > Matt, > > > > Are the wxeuporia routines for downloading files work yet? > > > > Could I use wxeuphoria to download an internet file or should I stick with > > calling > > wget for now? > > > > I've had success with them. I was downloading the Euforum text file and > converting it into an rss file. Here is the routine I used to get the file: > }}} <eucode> > procedure on_timer( atom this, atom event_type, atom id, atom event ) > atom url, stream > integer fn > sequence path, current > path = get_text_value( file_name ) > fn = open( path, "w" ) > if fn = -1 then > -- error opening the file, should post an error message to the user > return > end if > url = create( wxURL, "http://www.listfilter.com/mlist/current.txt" ) > stream = get_url_input( url ) > if stream then > current = stream_read( stream ) > puts( fn, "<?xml version='1.0' encoding='utf-8' ?>\n" ) > puts( fn, "<rss version=\"2.0\">\n" ) > puts( fn, "<channel>\n") > puts( fn, "<title>EuForum</title>\n" ) > puts( fn, "<link>http://www.listfilter.com/EuForum</link>\n" ) > puts( fn, "<description>EuForum RSS Feed - Official Euphoria Message > Board</description>\n" ) > > to_rss( fn, current ) > > puts( fn, "</channel>\n</rss>\n" ) > delete_instance( stream ) > else > puts(2, "Stream failed!\n") > end if > delete_instance( url ) > close(fn) > end procedure > </eucode> {{{ > > Matt Lewis Thanks, Matt. I don't think I've looked at the latest release of wxeuphoria, but I remember looking in your documentation and it saying that it wasn't working correctly. At least that is the way I understood it. This example helps and now I have one less excuse for getting started! -- "The author regrets that he is unable to reconcile himself to the thoughtful point of view you have expressed. However, it must be kept in mind that being raised in different cultures and different places can result in such differences of viewpoint between individuals. The author is from planet Earth." [author unknown] j.
4. Re: Wxeuphoria network functionality
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Jan 21, 2006
- 476 views
- Last edited Jan 22, 2006
Jason Gade wrote: > > Thanks, Matt. > > I don't think I've looked at the latest release of wxeuphoria, but I remember > looking in your documentation and it saying that it wasn't working correctly. > At least that is the way I understood it. > The wxHTTP class doesn't work, but you can use wxURL and the socket classes. Matt Lewis
5. Re: Wxeuphoria network functionality
- Posted by Jason Gade <jaygade at yahoo.com> Jan 21, 2006
- 497 views
- Last edited Jan 22, 2006
Matt Lewis wrote: > > Jason Gade wrote: > > > > Thanks, Matt. > > > > I don't think I've looked at the latest release of wxeuphoria, but I > > remember > > looking in your documentation and it saying that it wasn't working > > correctly. > > At least that is the way I understood it. > > > > The wxHTTP class doesn't work, but you can use wxURL and the socket classes. > > Matt Lewis Any good pointers on how to learn to do that? The wxwidgets docs are a bit thick for me. Say I wanted to download the file http://www.rapideuphoria.com/archive.zip How would I do that, or where would I learn? -- "The author regrets that he is unable to reconcile himself to the thoughtful point of view you have expressed. However, it must be kept in mind that being raised in different cultures and different places can result in such differences of viewpoint between individuals. The author is from planet Earth." [author unknown] j.
6. Re: Wxeuphoria network functionality
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Jan 22, 2006
- 506 views
Jason Gade wrote: > > Matt Lewis wrote: > > > > > > The wxHTTP class doesn't work, but you can use wxURL and the socket classes. > > > > Any good pointers on how to learn to do that? The wxwidgets docs are a bit > thick > for me. I think the best way is to just keep trying. Look at the code I've posted, maybe at the code in the wxEuphoria files, and compare that to what you see in the wxWidgets docs. As you go along, you'll probably start to pick up on things. You can also ask me about things you run across. My documentation is often a bit light. If you can fill out the docs in any place that gave you trouble, I'd appreciate it (and so would anyone else who came after you). > Say I wanted to download the file <a > href="http://www.rapideuphoria.com/archive.zip">http://www.rapideuphoria.com/archive.zip</a> > How would I do that, or where would I learn? > Here is a modified version of what I posted earlier. It will download the file specified in the box and save it. It just stores everything in one sequence and a single write. To break it up, take a look at stream_read(), and you could put that into your own code, and dump the result to a file as you go.
without warning include wxEuphoria.e include wxText.e include wxButton.e include wxNet.e global constant main = create( wxFrame, {0, -1, "Download Demo", 0, 0, 419, 200, wxDEFAULT_FRAME_STYLE }), panel = create( wxPanel, main ), file_label = create( wxStaticText, {panel, -1, "File name:", 13, 34, 116, 22 }), file_name = create( wxTextCtrl, {panel, -1, "http://www.rapideuphoria.com/index.html", 135, 34, 300, 23 }), download_button = create( wxButton, {panel, -1, "Download Now", 13, 126, 96, 30 }) procedure on_click( atom this, atom event_type, atom id, atom event ) atom wxurl, stream integer fn, ix sequence url, current, path url = get_text_value( file_name ) path = reverse( url ) ix = find( '/', path ) if ix then path = reverse( path[1..ix-1] ) else path = reverse( path ) end if wxurl = create( wxURL, url ) stream = get_url_input( wxurl ) if stream then fn = open( path, "w" ) if fn = -1 then puts(2, "Could not open file!\n" ) else current = stream_read( stream ) puts( fn, current ) delete_instance( stream ) close(fn) end if else puts(2, "Stream failed!\n") end if delete_instance( wxurl ) end procedure set_event_handler( download_button, -1, wxEVT_COMMAND_BUTTON_CLICKED, routine_id("on_click")) wxMain( main )
7. Re: Wxeuphoria network functionality
- Posted by Jason Gade <jaygade at yahoo.com> Jan 22, 2006
- 482 views
Matt Lewis wrote: > > Jason Gade wrote: > > > > Matt Lewis wrote: > > > > > > > > > The wxHTTP class doesn't work, but you can use wxURL and the socket > > > classes. > > > > > > > Any good pointers on how to learn to do that? The wxwidgets docs are a bit > > thick > > for me. > > I think the best way is to just keep trying. Look at the code I've posted, > maybe at the code in the wxEuphoria files, and compare that to what you > see in the wxWidgets docs. As you go along, you'll probably start to > pick up on things. You can also ask me about things you run across. > > My documentation is often a bit light. If you can fill out the docs > in any place that gave you trouble, I'd appreciate it (and so would anyone > else who came after you). I noticed thatI'll do what I can, but no promises. <snipped code> Thanks, Matt. I'll see what I can do. I don't have a very good track record on completing projects, but I like this idea that I have. But it uses networking, gui, and database (EDS) none of which I've programmed before. Would I get any benefit from reading the developer sources for wxeuphoria, or should I stick with your demo programs for now? I know some of it is automatically generated which is even harder to read than normal code. At least, I think you said some of it was automatically generated. Anyway, thanks! -- "The author regrets that he is unable to reconcile himself to the thoughtful point of view you have expressed. However, it must be kept in mind that being raised in different cultures and different places can result in such differences of viewpoint between individuals. The author is from planet Earth." [author unknown] j.
8. Re: Wxeuphoria network functionality
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Jan 22, 2006
- 466 views
Jason Gade wrote: > > Would I get any benefit from reading the developer sources for wxeuphoria, or > should I stick with your demo programs for now? I know some of it is > automatically > generated which is even harder to read than normal code. > > At least, I think you said some of it was automatically generated. > There are two things that are auto-generated. All the imports (define_c_var) and the platform specific code gets commented or uncommented. Most of the code is pretty simple, and just wraps the calls, doing stuff like putting a sequence into a wxString, and so forth. Some routines do a bit more, and might help you understand how things work. Matt Lewis
9. Re: Wxeuphoria network functionality
- Posted by Jason Gade <jaygade at yahoo.com> Jan 22, 2006
- 488 views
Matt Lewis wrote: > Here is a modified version of what I posted earlier. It will download the > file specified in the box and save it. It just stores everything in one > sequence and a single write. To break it up, take a look at stream_read(), > and you could put that into your own code, and dump the result to a file > as you go. > > }}} <eucode> > without warning > include wxEuphoria.e > include wxText.e > include wxButton.e > include wxNet.e > > global constant > main = create( wxFrame, {0, -1, "Download Demo", 0, 0, 419, 200, > wxDEFAULT_FRAME_STYLE }), > panel = create( wxPanel, main ), > file_label = create( wxStaticText, {panel, -1, "File name:", 13, 34, 116, 22 > }), > file_name = create( wxTextCtrl, {panel, -1, > "http://www.rapideuphoria.com/index.html", 135, 34, 300, 23 }), > download_button = create( wxButton, {panel, -1, "Download Now", 13, 126, 96, > 30 }) > > > procedure on_click( atom this, atom event_type, atom id, atom event ) > atom wxurl, stream > integer fn, ix > sequence url, current, path > url = get_text_value( file_name ) > path = reverse( url ) > ix = find( '/', path ) > if ix then > path = reverse( path[1..ix-1] ) > > else > path = reverse( path ) > end if > > wxurl = create( wxURL, url ) > stream = get_url_input( wxurl ) > if stream then > fn = open( path, "w" ) > if fn = -1 then > puts(2, "Could not open file!\n" ) > else > current = stream_read( stream ) > puts( fn, current ) > delete_instance( stream ) > close(fn) > end if > else > puts(2, "Stream failed!\n") > end if > delete_instance( wxurl ) > > > end procedure > set_event_handler( download_button, -1, wxEVT_COMMAND_BUTTON_CLICKED, > routine_id("on_click")) > > wxMain( main ) > </eucode> {{{ Other than changing the open() call to "wb", this works great! Maybe you could put it in your demos. -- "The author regrets that he is unable to reconcile himself to the thoughtful point of view you have expressed. However, it must be kept in mind that being raised in different cultures and different places can result in such differences of viewpoint between individuals. The author is from planet Earth." [author unknown] j.
10. Re: Wxeuphoria network functionality
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Jan 22, 2006
- 495 views
Jason Gade wrote: > > > Other than changing the open() call to "wb", this works great! Maybe you could > put it in your demos. Oops. I was testing on Linux and forgot to do that. And yes, I was planning on adding it... Matt Lewis