[chirp_devel] [PATCH 2 of 2] [RFC] Make RadioReference push status during the fetch
Tom Hayward
Fri Apr 13 06:51:31 PDT 2012
# HG changeset patch
# User Dan Smith <dsmith at danplanet.com>
# Date 1334271166 25200
# Node ID 1d6687778bf52a6b633044f2d5a8ab87283a0322
# Parent cc8eaaea59612fa079c97fc63d0b81c94fc4f5c9
[RFC] Make RadioReference push status during the fetch
Since we're walking a bunch of data, this helps the user not wonder if
things are actually happening behind the scenes.
Tom, this should give you something to start with and hopefully improve
a little.
Bug #00
diff -r cc8eaaea5961 -r 1d6687778bf5 chirp/radioreference.py
--- a/chirp/radioreference.py Thu Apr 12 15:51:47 2012 -0700
+++ b/chirp/radioreference.py Thu Apr 12 15:52:46 2012 -0700
@@ -30,7 +30,7 @@
"P25" : "P25",
}
-class RadioReferenceRadio(chirp_common.Radio):
+class RadioReferenceRadio(chirp_common.NetworkSourceRadio):
VENDOR = "Radio Reference LLC"
MODEL = "RadioReference.com"
@@ -61,20 +61,34 @@
zipcode = self._client.service.getZipcodeInfo(self._zip, self._auth)
county = self._client.service.getCountyInfo(zipcode.ctid, self._auth)
+
+ status = chirp_common.Status()
+ status.max = 0
+ for cat in county.cats:
+ status.max += len(cat.subcats)
+ status.max += len(county.agencyList)
+
for cat in county.cats:
print "Fetching category:", cat.cName
for subcat in cat.subcats:
print "\t", subcat.scName
result = self._client.service.getSubcatFreqs(subcat.scid, self._auth)
self._freqs += result
+ status.cur += 1
+ self.status_fn(status)
+ status.max -= len(county.agencyList)
for agency in county.agencyList:
agency = self._client.service.getAgencyInfo(agency.aid, self._auth)
for cat in agency.cats:
+ status.max += len(cat.subcats)
+ for cat in agency.cats:
print "Fetching category:", cat.cName
for subcat in cat.subcats:
print "\t", subcat.scName
result = self._client.service.getSubcatFreqs(subcat.scid, self._auth)
self._freqs += result
+ status.cur += 1
+ self.status_fn(status)
def get_features(self):
if not self._freqs:
@@ -153,4 +167,4 @@
print rrr.get_memory(0)
if __name__ == "__main__":
- main()
\ No newline at end of file
+ main()
More information about the chirp_devel
mailing list