xearth anonomizer
authorjgg <>
Wed, 22 Sep 1999 03:51:16 +0000 (03:51 +0000)
committerjgg <>
Wed, 22 Sep 1999 03:51:16 +0000 (03:51 +0000)
doc/ud-xearth.1.yo
ud-xearth

index 666c903..c25b71d 100644 (file)
@@ -22,6 +22,12 @@ dit(bf(-u))
 Set the authentication user. This is the user who's authority is used when 
 accessing the LDAP directory. The default is to use the current system user
 name.
 Set the authentication user. This is the user who's authority is used when 
 accessing the LDAP directory. The default is to use the current system user
 name.
+
+dit(bf(-a))
+Anonomize the data. Coordinates are truncated and no names are printed. For
+best results the output should be sorted using 'sort -n'. Otherwise the output
+is sorted by name..
+
 enddit()
 
 manpagefiles()
 enddit()
 
 manpagefiles()
index b1c1fee..cec3308 100755 (executable)
--- a/ud-xearth
+++ b/ud-xearth
@@ -17,6 +17,8 @@
 import string, re, time, ldap, getopt, sys, pwd, posix;
 from userdir_ldap import *;
 
 import string, re, time, ldap, getopt, sys, pwd, posix;
 from userdir_ldap import *;
 
+Anon = 0;
+
 # This needs to check for leading 0 to disambiguate some things
 def DecDegree(Attr,Type):
   Parts = re.match('[+-]?(\d*)\\.?(\d*)?',GetAttr(Attr,Type)).groups();
 # This needs to check for leading 0 to disambiguate some things
 def DecDegree(Attr,Type):
   Parts = re.match('[+-]?(\d*)\\.?(\d*)?',GetAttr(Attr,Type)).groups();
@@ -39,17 +41,23 @@ def DecDegree(Attr,Type):
      Min = Val - long(Val);
      Val = long(Val) + Min*100.0/60.0;
      
      Min = Val - long(Val);
      Val = long(Val) + Min*100.0/60.0;
      
+  if Anon != 0:
+      Str = "%3.3f"%(Val);
+  else:
+      Str = str(Val);
   if Val >= 0:
   if Val >= 0:
-     return "+" + str(Val);
-  return str(Val);
+     return "+" + Str;
+  return Str;
 
 # Main program starts here
 User = pwd.getpwuid(posix.getuid())[0];
 BindUser = User;
 
 # Main program starts here
 User = pwd.getpwuid(posix.getuid())[0];
 BindUser = User;
-(options, arguments) = getopt.getopt(sys.argv[1:], "u:")
+(options, arguments) = getopt.getopt(sys.argv[1:], "au:")
 for (switch, val) in options:
    if (switch == '-u'):
 for (switch, val) in options:
    if (switch == '-u'):
-      User = val
+      User = val;
+   if (switch == '-a'):
+      Anon = 1;
 
 # Connect to the ldap server
 l = ldap.open(LDAPServer);
 
 # Connect to the ldap server
 l = ldap.open(LDAPServer);
@@ -61,20 +69,27 @@ l.simple_bind_s(UserDn,Password);
 Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"latitude=*",\
          ["uid","cn","mn","sn","latitude","longitude"]);
 
 Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"latitude=*",\
          ["uid","cn","mn","sn","latitude","longitude"]);
 
-#ttrs = [('uid=bma,ou=users,dc=debian,dc=org', {'longitude': ['-0771426.059'], 'sn': ['Almeida'], 'cn': ['Brian'], 'latitude': ['0384514.263'], 'uid': ['bma']}), ('uid=jgg,ou=users,dc=debian,dc=org', {'longitude': ['-11328'], 'sn': ['Gunthorpe'], 'cn': ['Jason'], 'latitude': ['+5333'], 'uid': ['jgg']})]
 Attrs.sort();
 
 print "Markers file will be written to markers.dat,",
 sys.stdout.flush();
 F = open("markers.dat","w");
 Count = 0;
 Attrs.sort();
 
 print "Markers file will be written to markers.dat,",
 sys.stdout.flush();
 F = open("markers.dat","w");
 Count = 0;
+Failed = 0;
 for x in Attrs:
    if x[1].has_key("latitude") == 0 or x[1].has_key("longitude") == 0:
       continue;
    Count = Count + 1;
    try:
 for x in Attrs:
    if x[1].has_key("latitude") == 0 or x[1].has_key("longitude") == 0:
       continue;
    Count = Count + 1;
    try:
-      F.write("%16s %16s \"%s\" \t# %s\n"%(DecDegree(x,"latitude"),DecDegree(x,"longitude"),GetAttr(x,"uid"),EmailAddress(x)));
+      if Anon != 0:
+         F.write("%8s %8s \"\"\n"%(DecDegree(x,"latitude"),DecDegree(x,"longitude")));
+      else:
+         F.write("%16s %16s \"%s\" \t# %s\n"%(DecDegree(x,"latitude"),DecDegree(x,"longitude"),GetAttr(x,"uid"),EmailAddress(x)));
    except:
    except:
-      F.write("# Failed %s => %s: %s\n" %(x[0],sys.exc_type,sys.exc_value));
+      Failed = Failed + 1;
+      if Anon == 0:
+         F.write("# Failed %s => %s: %s\n" %(x[0],sys.exc_type,sys.exc_value));
+      else:
+         F.write("# Failed => %s: %s\n" %(sys.exc_type,sys.exc_value));
 F.close();
 F.close();
-print Count,"entries.";
+print Count,"entries,",Failed,"failures.";