* along with Beifahrer. If not, see <http://www.gnu.org/licenses/>.
*/
-static int main (string[] args) {
- var result = Curl.global_init (Curl.GLOBAL_DEFAULT);
- if (result != Curl.Code.OK)
- return 1;
+AdacMitfahrclub adac;
+MainLoop loop;
- if (args.length < 3) {
- print ("usage: beifahrer-cli <city_from> <city_to> [date]\n");
- print ("or: beifahrer-cli details <lift_url>\n");
- return 1;
- }
-
- var adac = new AdacMitfahrclub ();
-
- if (args[1] == "details") {
- var lift = adac.get_lift_details (args[2]);
+async void get_lifts (string city_from, string city_to, Date date) {
+ print ("Lifts from %s to %s on %d.%d.%d\n", city_from, city_to,
+ date.get_day (), date.get_month (), date.get_year ());
+ var lift_list = yield adac.get_lift_list (city_from, city_to, date);
+ foreach (Lift lift in lift_list) {
print ("%s\t%s\t%s\t%s\t%d\t%s\t", lift.city_from, lift.city_to, lift.date, lift.time, lift.places, lift.price);
if (LiftFlags.SMOKER in lift.flags)
print ("smoker ");
print ("adac ");
if (LiftFlags.WOMEN_ONLY in lift.flags)
print ("women ");
- print ("\n");
- foreach (string via in lift.city_via) {
- print ("\tvia %s\n", via);
- }
+ print ("\n");
+ print ("%s\n", lift.href);
+ }
- print ("Driver: %s (%s)\n", lift.name, lift.phone);
- print ("Description:\n%s\n", lift.description);
+ loop.quit ();
+}
+
+async void get_details (string href) {
+ var lift = new Lift ();
+ lift.href = href;
+ yield adac.update_lift_details (lift);
+
+ print ("%s\t%s\t%s\t%s\t%d\t%s\t", lift.city_from, lift.city_to, lift.date, lift.time, lift.places, lift.price);
+ if (LiftFlags.SMOKER in lift.flags)
+ print ("smoker ");
+ else if (LiftFlags.NON_SMOKER in lift.flags)
+ print ("non_smoker ");
+ if (LiftFlags.ADAC_MEMBER in lift.flags)
+ print ("adac ");
+ if (LiftFlags.WOMEN_ONLY in lift.flags)
+ print ("women ");
+ print ("\n");
+ foreach (string via in lift.city_via) {
+ print ("\tvia %s\n", via);
+ }
+ print ("Driver: %s (%s)\n", lift.name, lift.phone);
+ print ("Description:\n%s\n", lift.description);
+
+ loop.quit ();
+}
+
+static int main (string[] args) {
+ loop = new MainLoop (null);
+
+ if (args.length < 3) {
+ print ("usage: beifahrer-cli <city_from> <city_to> [date]\n");
+ print ("or: beifahrer-cli details <lift_url>\n");
+ return 1;
+ }
+
+ adac = new AdacMitfahrclub ();
+
+ if (args[1] == "details") {
+ get_details.begin (args[2]);
+
+ loop.run ();
return 0;
}
date.set_time_val (now);
}
- print ("Lifts from %s to %s on %d.%d.%d\n", city_from, city_to,
- date.get_day (), date.get_month (), date.get_year ());
-
- var lift_list = adac.get_lift_list (city_from, city_to, date);
- foreach (Lift lift in lift_list) {
- print ("%s\t%s\t%s\t%s\t%d\t%s\t", lift.city_from, lift.city_to, lift.date, lift.time, lift.places, lift.price);
- if (LiftFlags.SMOKER in lift.flags)
- print ("smoker ");
- else if (LiftFlags.NON_SMOKER in lift.flags)
- print ("non_smoker ");
- if (LiftFlags.ADAC_MEMBER in lift.flags)
- print ("adac ");
- if (LiftFlags.WOMEN_ONLY in lift.flags)
- print ("women ");
- print ("\n");
- print ("%s\n", lift.href);
- }
-
- Curl.global_cleanup ();
+ get_lifts.begin (city_from, city_to, date);
+ loop.run ();
return 0;
}