source: subversion/applications/editors/potlatch/potlatch.pl @ 7553

Last change on this file since 7553 was 7553, checked in by richard, 12 years ago

attempted fix for access from osm.org (as opposed to www.osm.org)

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1#!/usr/bin/perl
2
3        # ----------------------------------------------------------------
4        # potlatch.pl
5        # Flash editor for Openstreetmap
6
7        # editions Systeme D / Richard Fairhurst 2006-8
8        # public domain
9
10        # See http://wiki.openstreetmap.org/index.php/Potlatch/Changelog
11        # for revision history
12
13        # To compile:
14        # perl potlatch.pl [options] [destination path]
15
16        # Options:
17        # --dev         - use OSM dev server instead of localhost
18        # --trace       - enable trace windows
19        # Destination path is ./potlatch.swf if not specified
20
21        # You may do what you like with this file, but please think very
22        # carefully before adding dependencies or complicating the user
23        # interface. Thank you!
24        # ----------------------------------------------------------------
25
26        use SWF qw(:ALL);
27        use SWF::Constants qw(:Button);
28
29        # ----- Initialise
30
31        SWF::setScale(20.0);
32        SWF::useSWFVersion(8);
33
34        $m = new SWF::Movie();
35        $m->setDimension(700, 600);
36        $m->setRate(50);
37        $m->setBackground(0xFF,0xFF,0xFF);
38
39        require "potlatch_assets.pl";
40
41        # ----- Get server addresses
42
43        $ofn=''; $debug=0; $dev=0;
44        foreach $a (@ARGV) {
45                if    ($a eq '--trace') { $debug=1; }
46                elsif ($a eq '--dev'  ) { $dev  =1; }
47                elsif ($a eq '--local') { $dev  =2; }
48                else                                    { $ofn=$a;  }
49        }
50       
51        if ($dev==1) { $actionscript=<<EOF;
52        var apiurl='http://main.dev.openstreetmap.org/api/0.5/amf';
53        var gpsurl='http://main.dev.openstreetmap.org/api/0.5/swf/trackpoints';
54        var gpxurl='http://main.dev.openstreetmap.org/trace/';
55        var tileprefix='';
56        var yahoourl='http://main.dev.openstreetmap.org/potlatch/ymap2.swf';
57        var gpxsuffix='/data.xml';
58EOF
59        } elsif ($dev==2) { $actionscript=<<EOF;
60        var apiurl='../api/0.5/amf';
61        var gpsurl='../api/0.5/swf/trackpoints';
62        var gpxurl="http://"+this._url.split('/')[2]+"/trace/";
63        var tileprefix='http://127.0.0.1/~richard/cgi-bin/proxy.cgi?url=';
64        var yahoourl='/potlatch/ymap2.swf';
65        var gpxsuffix='/data.xml';
66EOF
67        } else { $actionscript=<<EOF;
68        var apiurl='../api/0.5/amf';
69        var gpsurl='../api/0.5/swf/trackpoints';
70        var gpxurl="http://"+this._url.split('/')[2]+"/trace/";
71        var tileprefix='';
72        var yahoourl='/potlatch/ymap2.swf';
73        var gpxsuffix='/data.xml';
74EOF
75        }
76
77        # ----- Read ActionScript files
78
79        $actionscript.="#include 'potlatch.as'\n";
80        while ($actionscript=~/#include '(.+?)'/g) {
81                $fn=$1;
82                unless (exists($ENV{'DOCUMENT_ROOT'})) {
83                        print "Reading $fn              \r";
84                }
85                local $/;
86                open TEXT,$fn or die "Can't open file $fn: $!\n";
87                $text=<TEXT>;
88                close TEXT;
89                $actionscript=~s/#include '$fn'/$text/;
90        }
91
92        if ($debug) { $actionscript=~s!false;//#debug!true;!g; }
93        $m->add(new SWF::Action($actionscript));
94
95        # ----- Output file
96
97        $m->nextFrame();
98
99        if (exists($ENV{'DOCUMENT_ROOT'})) {
100                # We're running under a web server, so output to browser
101                print "Content-type: application/x-shockwave-flash\n\n";
102                $m->output(9);
103        } else {
104                # Running from command line, so output to file
105                print localtime()."\n";
106                if ($ofn) { print "Saving to $ofn\n"; $m->save($ofn); }
107                         else { print "Saving to this directory\n"; $m->save("potlatch.swf"); }
108        }
109
Note: See TracBrowser for help on using the repository browser.