for phone_number in farmers: s = Subscription.objects.select_related().filter(phone_number_id=phone_number).order_by('market') market_id = 0 substring = '' substrings_list = [] for item in s: if market_id != item.market_id: market_id = item.market_id if substring: substrings_list.append(substring[:-1]) substring = market_abbr[market_id] + '-' substring += str(item._crop_cache) + ':' + quotes[market_id][item.crop_id] + ',' substrings_list.append(substring[:-1]) message = '/'.join(substrings_list) try: response = session.send_sms(phone_number, message) if not response['Queued']: syslog.syslog('Error - Failed to send message to %s. - %s' % (phone_number,response['SMSError'])) sms = SMS(phone_number = Farmer.objects.get(phone_number=phone_number), message = message, posttime = timezone.now(), cdyne_posttime = response['SentDateTime'], cdyne_sms_id = response['MessageID'], cancelled = response['Cancelled'], error = response['SMSError'], queued = response['Queued'], sent = response['Sent']) sms.save() except Exception, e: syslog.syslog(str(e))
def send_sms(phone_number): m = Market.objects.all() market_abbr = {} for item in m: market_abbr[item.id] = item.abbreviation f = Farmer.objects.all() farmers = [] for item in f: farmers.append(item.phone_number) q = Quote.objects.filter(date=timezone.now().strftime('%Y-%m-%d')).order_by('market') if not q: return False quotes = {} market_id = 0 for item in q: if market_id != item.market_id: market_id = item.market_id quotes[market_id] = {} quotes[market_id][item.crop_id] = str(item.price) license_key = get_license_key() session = Session(license_key) s = Subscription.objects.select_related().filter(phone_number_id=phone_number).order_by('market') market_id = 0 substring = '' substrings_list = [] for item in s: if market_id != item.market_id: market_id = item.market_id if substring: substrings_list.append(substring[:-1]) substring = market_abbr[market_id] + '-' substring += str(item._crop_cache) + ':' + quotes[market_id][item.crop_id] + ',' substrings_list.append(substring[:-1]) message = '/'.join(substrings_list) if not message: return False try: response = session.send_sms(phone_number, message) if not response['Queued']: syslog.syslog('Error - Failed to send message to %s. - %s' % (phone_number,response['SMSError'])) sms = SMS(phone_number = Farmer.objects.get(phone_number=phone_number), message = message, posttime = timezone.now(), cdyne_posttime = response['SentDateTime'], cdyne_sms_id = response['MessageID'], cancelled = response['Cancelled'], error = response['SMSError'], queued = response['Queued'], sent = response['Sent']) sms.save() return message except Exception, e: syslog.syslog(str(e)) return False