diff --git a/sijapi/routers/note.py b/sijapi/routers/note.py index 55a623c..f489a74 100644 --- a/sijapi/routers/note.py +++ b/sijapi/routers/note.py @@ -368,7 +368,8 @@ created: "{dt_datetime.now().strftime("%Y-%m-%d %H:%M:%S")}" with open(absolute_path, 'wb') as f: f.write(body.encode()) - banner = await generate_banner(formatted_day, location, weather_note) + if Sys.EXTENSIONS.comfyui: + banner = await generate_banner(formatted_day, location, weather_note) return absolute_path @@ -422,96 +423,103 @@ async def update_frontmatter(date_time: dt_datetime, key: str, value: str): return {"message": "Frontmatter updated successfully."} -@note.post("/note/banner") -async def banner_endpoint(dt: str, location: str = None, forecast: str = None, mood: str = None, other_context: str = None): - ''' - Endpoint (POST) that generates a new banner image for the Obsidian daily note for a specified date, taking into account optional additional information, then updates the frontmatter if necessary. - ''' - l.debug(f"banner_endpoint requested with date: {dt} ({type(dt)})") - date_time = await gis.dt(dt) - l.debug(f"date_time after localization: {date_time} ({type(date_time)})") - context = await generate_context(dt, location, forecast, mood, other_context) - jpg_path = await generate_banner(date_time, location, mood=mood, other_context=other_context) - return jpg_path +if Sys.EXTENSIONS.comfyui: + @note.post("/note/banner") + async def banner_endpoint(dt: str, location: str = None, forecast: str = None, mood: str = None, other_context: str = None): + ''' + Endpoint (POST) that generates a new banner image for the Obsidian daily note for a specified date, taking into account optional additional information, then updates the frontmatter if necessary. + ''' + l.debug(f"banner_endpoint requested with date: {dt} ({type(dt)})") + date_time = await gis.dt(dt) + l.debug(f"date_time after localization: {date_time} ({type(date_time)})") + context = await generate_banner_context(dt, location, forecast, mood, other_context) + jpg_path = await generate_banner(date_time, location, mood=mood, other_context=other_context) + return jpg_path async def generate_banner(dt, location: Location = None, forecast: str = None, mood: str = None, other_context: str = None): - date_time = await gis.dt(dt) - destination_path, local_path = assemble_journal_path(date_time, filename="Banner", extension=".jpg", no_timestamp = True) - if not location or not isinstance(location, Location): - locations = await gis.fetch_locations(date_time) - if locations: - location = locations[0] - if not forecast: - forecast = await update_dn_weather(date_time, False, location.latitude, location.longitude) - - prompt = await generate_context(date_time, location, forecast, mood, other_context) - l.debug(f"Prompt: {prompt}") - final_path = await img.workflow(prompt, scene=OBSIDIAN_BANNER_SCENE, destination_path=destination_path) - if not str(local_path) in str(final_path): - l.info(f"Apparent mismatch between local path, {local_path}, and final_path, {final_path}") - jpg_embed = f"\"![[{local_path}]]\"" - await update_frontmatter(date_time, "banner", jpg_embed) - return local_path - - -async def generate_context(date_time, location: Location, forecast: str, mood: str, other_context: str): - display_name = "Location: " - if location and isinstance(location, Location): - lat, lon = location.latitude, location.longitude - override_location = GEO.find_override_location(lat, lon) - display_name += f"{override_location}, " if override_location else "" - if location.display_name: - display_name += f"{location.display_name}" - - else: - display_name += f"{location.road}, " if location.road else "" - display_name += f"the {location.neighbourhood} neighbourhood of " if location.neighbourhood else "" - display_name += f"the {location.suburb} suburb of " if location.suburb else "" - display_name += f"the {location.quarter} quarter, " if location.quarter else "" - display_name += f"{location.city}, " if location.city else "" - display_name += f"{location.state} " if location.state else "" - display_name += f"{location.country} " if location.country else "" - - if display_name == "Location: ": - geocoded_location = await GEO.code((lat, lon)) - if geocoded_location.display_name or geocoded_location.city or geocoded_location.country: - return await generate_context(date_time, geocoded_location, forecast, mood, other_context) - else: - l.warning(f"Failed to get a useable location for purposes of generating a banner, but we'll generate one anyway.") - elif location and isinstance(location, str): - display_name = f"Location: {location}\n" + if Sys.EXTENSIONS.comfyui: + date_time = await gis.dt(dt) + destination_path, local_path = assemble_journal_path(date_time, filename="Banner", extension=".jpg", no_timestamp = True) + if not location or not isinstance(location, Location): + locations = await gis.fetch_locations(date_time) + if locations: + location = locations[0] + if not forecast: + forecast = await update_dn_weather(date_time, False, location.latitude, location.longitude) + + prompt = await generate_banner_context(date_time, location, forecast, mood, other_context) + l.debug(f"Prompt: {prompt}") + final_path = await img.workflow(prompt, scene=OBSIDIAN_BANNER_SCENE, destination_path=destination_path) + if not str(local_path) in str(final_path): + l.info(f"Apparent mismatch between local path, {local_path}, and final_path, {final_path}") + jpg_embed = f"\"![[{local_path}]]\"" + await update_frontmatter(date_time, "banner", jpg_embed) + return local_path else: - display_name = "" + l.warn(f"generate_banner called, but comfyui extension is disabled") - if not forecast: - forecast = "The weather forecast is: " + await update_dn_weather(date_time) - sentiment = await sentiment_analysis(date_time) - mood = sentiment if not mood else mood - mood = f"Mood: {mood}" if mood else "" - if mood and sentiment: mood = f"Mood: {mood}, {sentiment}" - elif mood and not sentiment: mood = f"Mood: {mood}" - elif sentiment and not mood: mood = f"Mood: {sentiment}" - else: mood = "" - - events = await cal.get_events(date_time, date_time) - formatted_events = [] - for event in events: - event_str = event.get('name') - if event.get('location'): - event_str += f" at {event.get('location')}" - formatted_events.append(event_str) - - additional_info = ', '.join(formatted_events) if formatted_events else '' - - other_context = f"{other_context}, {additional_info}" if other_context else additional_info - other_context = f"Additional information: {other_context}" if other_context else "" - - prompt = "Generate an aesthetically appealing banner image for a daily note that helps to visualize the following scene information: " - prompt += "\n".join([display_name, forecast, mood, other_context]) - - return prompt +async def generate_banner_context(date_time, location: Location, forecast: str, mood: str, other_context: str): + if Sys.EXTENSIONS.comfyui: + display_name = "Location: " + if location and isinstance(location, Location): + lat, lon = location.latitude, location.longitude + override_location = GEO.find_override_location(lat, lon) + display_name += f"{override_location}, " if override_location else "" + if location.display_name: + display_name += f"{location.display_name}" + + else: + display_name += f"{location.road}, " if location.road else "" + display_name += f"the {location.neighbourhood} neighbourhood of " if location.neighbourhood else "" + display_name += f"the {location.suburb} suburb of " if location.suburb else "" + display_name += f"the {location.quarter} quarter, " if location.quarter else "" + display_name += f"{location.city}, " if location.city else "" + display_name += f"{location.state} " if location.state else "" + display_name += f"{location.country} " if location.country else "" + + if display_name == "Location: ": + geocoded_location = await GEO.code((lat, lon)) + if geocoded_location.display_name or geocoded_location.city or geocoded_location.country: + return await generate_banner_context(date_time, geocoded_location, forecast, mood, other_context) + else: + l.warning(f"Failed to get a useable location for purposes of generating a banner, but we'll generate one anyway.") + elif location and isinstance(location, str): + display_name = f"Location: {location}\n" + else: + display_name = "" + + if not forecast: + forecast = "The weather forecast is: " + await update_dn_weather(date_time) + + sentiment = await sentiment_analysis(date_time) + mood = sentiment if not mood else mood + mood = f"Mood: {mood}" if mood else "" + if mood and sentiment: mood = f"Mood: {mood}, {sentiment}" + elif mood and not sentiment: mood = f"Mood: {mood}" + elif sentiment and not mood: mood = f"Mood: {sentiment}" + else: mood = "" + + events = await cal.get_events(date_time, date_time) + formatted_events = [] + for event in events: + event_str = event.get('name') + if event.get('location'): + event_str += f" at {event.get('location')}" + formatted_events.append(event_str) + + additional_info = ', '.join(formatted_events) if formatted_events else '' + + other_context = f"{other_context}, {additional_info}" if other_context else additional_info + other_context = f"Additional information: {other_context}" if other_context else "" + + prompt = "Generate an aesthetically appealing banner image for a daily note that helps to visualize the following scene information: " + prompt += "\n".join([display_name, forecast, mood, other_context]) + + return prompt + else: + l.warn(f"generate_banner_context called, but comfyui extension disabled") async def get_note(date_time: dt_datetime): diff --git a/sijapi/routers/reverse_directory.json b/sijapi/routers/reverse_directory.json deleted file mode 100644 index 02a5399..0000000 --- a/sijapi/routers/reverse_directory.json +++ /dev/null @@ -1 +0,0 @@ -{"(541) 326-1137":"Judy Plapinger","8618782249145":"Linnea Schulenburg","(503) 484-7495":"Noah Greenwald","(541) 840-4899":"Rawly Glass","(503) 688-8515":"Peter Noordijk","(570) 726-1310":"Gary Kout","(503) 997-0268":"Samantha Grafton","(213) 529-8547":"Martin Young","(202) 225-6416":"Kerry Arntt","(415) 622-5323":"Tenley Wallace","(503) 768-7000":"L&C ALERTS","(541) 482-6766":"Ross Casebolt","(575) 613-4196,Ext136":"Dina Gonzales","(541) 301-5329":"Raul Tovar","(312) 208-8782":"Stu","(408) 690-5371":"Danny Quilici","(541) 608-6868":"Mary Ferrell","(541) 596-2960":"Lost Forest Recordings","(541) 326-9069":"Jeff McAllister","(541) 844-8500":"Anna Paris","(928) 821-5096":"Chris","(503) 221-0140":"University Place Hotel & Conference Center","(530) 906-9235":"Camille Burge","(541) 482-3476":"Ashland General Hardware","(303) 641-3149":"Ted Zukoski","(406) 324-8011,Ext125":"Matt Bishop","(541) 292-0776":"Graham Lewis","(541) 746-0112":"Springfield Emergency Vet","(541) 253-6215":"Josh Brady","(541) 535-8042":"Paul Kramer","(206) 487-7244,Ext118":"Michelle Loth","(541) 488-6067":"The Peerless Hotel & Restaurant","(541) 946-8003":"Joan Becich","(541) 348-9912":"Floras Lake Wind Surfing","(971) 533-3222":"Megan Frankel","(971) 808-0775;x112":"Sristi Kamal","(541) 543-8835":"Jackie Marlette","(541) 482-2237":"Ashland Food Cooperative","(541) 621-7474":"Lynn Blanche","(541) 482-9622":"Ashland YMCA","(541) 690-2086":"Anna Mantheakis","(503) 757-1615":"Carson Hockley","(541) 261-4631":"Craig","(541) 301-3962":"Will'm Barondeau","(541) 552-6322":"Shamsul Alam","54177923930;228":"Misha Hernandez","(406) 546-3469":"Barbara Chilcott","(503) 504-5660":"Amy Atwood","(541) 631-9799":"Sequoia Miller","(916) 607-9576":"Rose Rushing","+52 664 778 9699":"Lily Kurtz","(503) 914-1323":"Susan Jane M. Brown","(541) 482-4181":"Ashland Les Schwab Tire Center","(575) 224-6781":"Rachel Heineman","(541) 552-8890":"Howard Schreiber","(248) 760-6938":"Nathan","(541) 941-8592":"Randi Powell","(541) 613-3770":"Tom Berich","(248) 600-9493":"Garrett","(503) 804-1045":"Jimmy Twyman","(541) 944-2075":"Dawn Sturgeon","(575) 313-1549":"Doug Fine","(541) 441-9657":"Emily Turner","(541) 488-0581":"Ashland Cycle Sport","(541) 531-2011":"Jordan Jigtse Whitlock","(541) 944-5453":"Jared Cruce","(503) 605-8776":"Wells Fargo Collections","(760) 797-5015":"Willy Terrall","(541) 241-5477":"Aaron Fletcher","(541) 621-6623":"Chani","(503) 913-6496":"Tucker Morris","(541) 864-9624":"Joel Lesko","(802) 387-4767":"Landmark College","(541) 622-4055":"Aaron Fletcher","(541) 349-0647":"Pete Frost","(541) 552-6428":"Ryan Greene","(541) 488-0073":"Marguerite Pawlick","(833) 590-0104":"Package Concierge","(540) 204-5170":"Chaffin Scott","(541) 552-2705":"Claudia Alick","(415) 503-7612":"Nick Hartanto","(541) 482-6636":"The Cheerful Vet","(520) 850-3099":"Max Yoklic","(541) 201-4930":"Ashland Pediatrics","(541) 840-1279":"Kathy Herod","(541) 324-6099":"Daniel Waldron","(510) 502-4876":"Jonathan M. Keim","(541) 245-6638":"Sophia Mantheakis","(541) 772-4029":"Rich Rohde","(206) 487-7244":"Michelle Loth","(541) 482-9504":"George Kramer","(541) 488-6035":"Charity McGregor","(415) 246-0161":"Laurel Sutherlin","(541) 210-0082":"Christina Walker","(541) 631-9553":"Vanessa Nowitzky","(541) 899-8888":"James Lloyd","(541) 708-6665":"Frances Riley","(267) 591-3585":"Kristy Carangi","(541) 301-4971":"Colin Stevens","(310) 938-4715":"Natalie Faye","(541) 944-2975":"Lars Bowlin","(541) 482-2915":"Ashland Radio Shack","(541) 324-8224":"Pippa Callanan","(315) 416-9475":"Tim Wilson","(541) 708-3799":"Keith Haxton","(541) 482-1593":"Susan Saladoff","(360) 593-2946":"Sadie Normoyle","(541) 830-3689":"Micky & Mike","(970) 462-6099":"Ben Scissors","(801) 651-1267":"Andrew Hathon","(717) 736-5733":"Beau MacGinnes","(424) 744-7581":"Maesyn","(541) 488-0177":"South Valley Auto Body & Repair","(541) 531-2203":"Mark Anderson","(541) 552-1061":"David Wick","(310) 666-5206":"Silvia Nagy-Ryan","(928) 282-2444":"Charles Wells","(541) 505-4699":"Carrie Zoll","(949) 689-0408":"Jean-Luc","242-733":"Chase Alerts","(703) 973-2585":"Morgan O'Grady","(847) 636-1486":"Nina Robertson","(647) 386-3214":"Erin Janus","(503) 577-8714":"Brandon Worthington","(541) 499-1412":"Nastassia Drosdick","(541) 837-3253":"Amber Heasley","(503) 957-7411":"Clark Geil","(541) 592-9181":"Michael Drevenstedt","(541) 488-2202":"Ashland Community Hospital","(541) 944-2865":"Anne Ashbey","(541) 255-8017":"Jack Montague","(775) 722-8142":"Taylor","(541) 499-1512":"Amanda Kulmac","(541) 201-4000":"Ashland Community Hospital","(541) 301-8784":"Virginia Luka","(612) 388-6717":"Lani","(503) 768-6888":"John Parry","(541) 953-7169":"Chris Stebbins","(541) 326-6235":"Ross Williams","(541) 488-1080":"Pete Gillette","(541) 778-5269":"Martin Young","(541) 821-1321":"Julie","(541) 840-8232":"Cory Weeks","(216) 374-5919":"Shea Chapman","(541) 601-4877":"Sean Snider","(423) 646-6625":"Elizabeth Graves","(800) 425-2540":"1-800-CONTACTS","5417083098item2XABLabelSkypeCall":"Vanessa Nowitzky","(541) 226-8366":"Matt Hill","(515) 783-4831":"Nick Ball","(406) 549-3895":"Sarah McMillan","(541) 672-8094":"Sarah Byer","(541) 488-9207":"Ashland Home Net","(541) 784-8120":"David Parker","(530) 905-0264":"Nick Joslin","935-57":"Wells Fargo Alerts","(541) 632-4780,Ext114":"Kelly Scoble","(323) 517-8017":"Vanessa Hopkins","(541) 701-9737":"Levi Anderson","(541) 301-6804":"Lorenzo SantaBarbara","(541) 301-4341":"Mark Thomas","(541) 941-3502":"Derek Roemer","(503) 228-0900":"Tea Chai Te","(208) 521-4596":"Hannah Howell","(415) 362-8064":"Hamilton Candee","(541) 944-6778":"Sarah Troychak","(541) 338-7072":"Marianne Dugan","(541) 778-6272":"Jerred North","271-04":"Costco Pharmacy","(541) 482-8660":"Dave Willis","(800) 266-8228":"1-800-CONTACTS","(541) 601-8250":"Sangye Tenzin","(435) 770-9543":"Paul Nicholson","(541) 201-4800":"Ashland Community Hospital","(541) 944-2247":"Dave Willis","(541) 840-5966":"Greg Goebelt","(541) 601-3202":"Steve Brown","(541) 531-8898":"Don Kitzman","(575) 758-3703":"Dina Gonzales","(541) 840-2760":"Erin Chamberlain","(858) 361-2726":"Akshay Shah","(503) 768-6654":"Ryan Shannon","(541) 944-5513":"Jarrett Moran","(512) 964-4447":"Jim Walters IV","(541) 471-4106":"AllCare Health","(503) 949-3329":"Pierre","(541) 218-6007":"Antonio Melendez","(541) 482-4131":"Creekside Pizza Bistro","(541) 708-0675":"Matt Vogel","(301) 775-8440":"Little Fox 🦊 (Anna)","(971) 200-5230":"Daniel Pacurar","(541) 890-7545":"Evan Lasley","(541) 261-2332":"Martin Young","(541) 622-5950":"Martin Young","(541) 944-0184":"Hal Wing","(541) 499-4291":"Lisa Byrne","(541) 301-7127":"Aiden Williamson","(541) 512-3900":"La Clinica","(541) 525-5087":"John Mellgren","(541) 261-7992":"Felice","(970) 201-8997":"Richard","(541) 482-1663":"Terry Toth","(510) 837-9346":"Kara Bernarda","(541) 337-3998":"Burrito Girl","(541) 488-7730":"McClure's Auto Repair","(541) 601-5388":"Samuel George","(541) 513-7008":"Cherise Cottier","(609) 661-1220":"Alex","(541) 261-5612":"Christopher Sutton","(503) 241-1112":"Pro Photo Supply","(541) 535-3065":"Dillon Sinnott","(541) 840-8738":"Brent Streeper","(541) 488-3823":"Ashland Independent Film Festival","(541) 821-3187":"Joan Becich","(541) 324-3151":"Terry Hill","(347) 497-9936":"Rik Burns","(503) 232-3003":"Aurora Clinic","(216) 903-9171":"Ben Kirsch","(541) 359-3240,Ext111":"Jackie Marlette","(503) 498-8830":"Theo Killian","(541) 890-0534":"Kirk McKenzie","(866) 650-5213":"Marianne Dugan","(201) 406-0392":"Pavlo Stavrou","(541) 292-9153":"Adam Blake","(541) 482-0526":"Dave Willis","(541) 601-5860":"Karen","(541) 799-9924":"Rich Marlette (?)","(541) 488-5271":"Mike Sorenson","(541) 837-3637":"Birgit Johannsen","(541) 778-6778":"Shante Miranda","(541) 778-3174":"Jeffrey Star","(541) 665-4151":"Randelle Caldwell","(541) 482-8230":"John Wieczorek","(206) 607-9867":"Jen Calkins","(503) 754-3066":"Adam","(615) 587-3235":"Ali Roth","(215) 872-6365":"Skatie Katie","(505) 660-7642":"Tannis Fox","(541) 941-7507":"Susan Saladoff","(503) 519-7049":"Sristi Kamal","(541) 890-9693":"William Lewis-Kelly","(541) 837-3611":"Marty Ginsburg","(541) 842-0265":"Jesse Sharpe","(909) 896-2006":"John Shahan","(541) 301-9587":"Mike Wills","(818) 667-6657":"Cooper Rodgers","(541) 914-9698":"Pam Hardy","(503) 407-5211":"Meryl Six","(541) 261-4396":"Tyler Maddox","(541) 810-3524":"Blake Helmken","(505) 231-1070":"Tom Singer Ph.D.","(907) 401-0966":"Justin Crayne","(203) 246-9252":"Janet Marley","(541) 261-6633":"Nisha Burton","(503) 998-9710":"Alex Gillette","(321) 947-0458":"Andrew Gay","(760) 750-0020":"Joseph Villaseñor","(541) 708-3737":"Phronesis","(541) 552-6387":"Sophia Nielsson","(541) 589-0941":"Sarah Mues","(858) 815-7208":"Joe Arias","(541) 761-7637":"Cara Michelle","(541) 488-0029":"Bloomsbury Books","(541) 482-1035":"Catherine Wallner","(541) 840-6653":"Terry Toth","(503) 841-2255":"Andrew Hawley","(771) 444-3944":"Call is recorded","(661) 748-0241":"Vanessa Nowitzky","(206) 356-8689":"Tom Wheeler","(800) 222-4357":"AAA Roadside Assistance","(541) 264-9373":"Austin Robinette","(415) 421-7151":"Hamilton Candee","(541) 852-2452":"Lyndee Prill","(541) 326-6809":"Jannik","(541) 973-4326":"Roze Kelila","(541) 531-1245":"Phil Gahr","(818) 970-0814":"Ben Toscher","(541) 708-3527":"Phronesis","(907) 244-2198":"Taylor","(315) 201-2284":"Jane @ TapeACall","(303) 623-8083":"Stu Gillespie","(541) 601-4515":"Anne Adderson","(415) 262-4735 x4737":"Gary Bobker","(541) 840-9649":"Cody Growe","(541) 840-3987":"Leigh Madsen","(707) 822-7711":"Tom Wheeler","(541) 201-3268":"Ross Stuart","(262) 914-1113":"Brian Sweeney","(805) 501-8720":"Marty Ginsburg","(818) 325-6899":"Kurk Kasparian","(541) 727-1996":"Therese Holliday","(541) 619-8379":"Jacob Collier","(925) 206-0758":"Sean Crosby","(505) 350-6042":"Elizabeth","(541) 261-7142":"Joe Reedy","(541) 410-8513":"Katie Breen","(541) 261-2916":"David Bruce","(541) 324-4064":"Liam","(541) 450-2047":"Lara Finlay","(916) 708-0140":"Kyle Pate","(541) 774-4320":"Philip Yates","(561) 703-8160":"Ophelia","(541) 414-8988":"Lily Kurtz","(541) 255-0209,Ext117":"David Lawlor","(916) 500-9352":"Peter Dixon","(541) 944-4365":"Danny Moore","(206) 852-8780":"Mo Costello","(503) 517-3646":"AJ Meeker","(541) 488-2885":"Bill Saar","(541) 552-6763":"Anne Chambers","(503) 227-2345":"Mazamas","(781) 659-1696":"Kevin Cassidy","(541) 941-6763":"Jessica Zigenis","017662513158":"Nico Schu","(443) 632-8294":"Dani Replogle","(541) 779-8499":"Hal Wing","(541) 531-5854":"Aaron Garcia","(541) 261-8981":"Cassandra Davis","(646) 693-0634":"TapeACall (Don't forget to Merge!)","(541) 891-5733":"Ron Huffstutter","(541) 488-5789;1018":"Kelsey Furman","(855) 855-1961":"Peace Corps","504-72":"Apple Inc.","(541) 779-0655":"Wendy Pool","(360) 401-5228":"Rusty C Shorey","(541) 531-8310":"Cherise Cottier","(541) 941-6651":"Wendy Temple","(541) 621-2443":"ShaLane Wilson","(541) 226-5228":"Alex Williams","(248) 918-9630":"Matt Vogel","(406) 671-7720":"Kelly Nokes","(800) 432-3117":"Chase Cardholder Services","(503) 833-2266":"Rob Walton","(361) 983-4252":"Carl Ray","(907) 723-8939":"Kacy Carlson","(541) 941-1603":"Sherry","(541) 601-9841":"Bruce Hostetler","(541) 225-8017":"Jack Montague","(503) 810-1185":"Brent Collier","(541) 690-7634":"Keith Haxton","(541) 292-4280":"Joel Henigson","(541) 621-2431":"Ronen Geffen","(541) 482-8700":"Planned Parenthood: Ashland Health Center","(541) 543-0018":"Pete Frost","(510) 408-9406":"Aaron Fletcher","(503) 823-7740":"Portland Bureau of Environmental Services","(310) 692-1844":"Anna Paris","262-66":"United","(541) 482-0491":"Leon Pyle","(541) 951-7313":"S Latham-Gauthier","(949) 836-8135":"Luc Meisel","(530) 927-9524":"Nils Holst","(503) 888-6422":"Craig Johnston","(541) 778-6626":"Sangye Ince-Johannsen","(530) 545-9004":"Susan Heydarian","(802) 779-4621":"Anna Tadio","(541) 535-8675":"Advanced Transmissions","(541) 601-5936":"Max Lowren Hollenbeck","(541) 772-3029":"Oregon Action","(508) 881-2660":"Ashland Lumber","(541) 779-3215":"So. or. Humane Society","(415) 595-4887":"Taylor Thomas","(541) 227-1081":"Preston Price","(970) 219-3204":"Sarah Rudeen","(541) 482-5014":"Jeff Wishard","(541) 552-6345":"Mark Tveskov","(415) 948-6189":"Joshua Bowen","(541) 622-9927":"Michael Stanfield","(541) 787-8746":"Patrick Dodd","(541) 552-6133":"James Phillips","(541) 837-3590":"Marlene Koch","(541) 345-1544":"Animal Health Associates","(406) 430-3023,Ext124":"Barbara Chilcott","(541) 840-8595":"James Joy","(541) 890-6079":"Chris","(503) 768-7837":"Kelsey Neussl","(541) 912-2671":"Tayo Olson","(541) 727-7500":"Marc Wells","(541) 207-4784":"David Lawlor","(541) 552-7672":"Southern Oregon University","(415) 425-3377":"Kevin Ang","(541) 482-6767":"Science Works Hands-On Museum","(206) 719-1420":"Marc Strauch","(541) 261-8777":"Rick Bleiweiss","222-669":"AAA Roadside Assistance","(435) 494-9937":"Paul Lauras BF","(971) 570-3584":"James","(541) 941-1809":"Naomi Salisbury","(541) 941-5604":"David Orr","(503) 891-1124":"Tim Garrett","(770) 883-1010":"Jerry Ince","(605) 999-6140":"Laura","(541) 646-1937":"Cherise Cottier","(541) 488-1202":"Ashland Outdoor Store","(541) 646-6589":"Will'm Barondeau","(347) 866-4630":"Nicole Denham","(541) 210-4203":"Jon Dyrud","(770) 883-5259":"Frances Riley","(406) 422-9866":"Matt Bishop","(808) 354-4071":"Dan Lehner","(541) 482-3179":"Anne Chambers","(503) 327-4923":"Bethany Cotton","(541) 324-7200":"Rusty C Shorey","(503) 319-3501":"Neil Karstetter","(541) 631-8133":"Bryant Zwart","(646) 263-3919":"Eric Lasko","(541) 621-3354":"Ted","(541) 227-9808":"Anthony White","(541) 951-2970":"Nicole Paradis","(801) 673-1941":"Darrell","(714) 845-7143":"Tony DiMaggio","(775) 343-8228":"Blaine Johnston","(503) 396-0550":"Caroline Brinster","(541) 601-4196":"Micky & Mike","(541) 899-1070":"Gay Bradshaw","(541) 301-6447":"Chris Hardy","(541) 245-2000":"Southern Oregon Subaru","(419) 309-6554":"Kelsey Furman","(541) 510-8214":"Kelly Scoble","(310) 612-5569":"David Del Francia","(541) 301-2710":"Marc Wells","(541) 890-1803":"Susan Dizy Chester","(541) 450-3148":"David Collings","(415) 425-2838":"Ivy Ang","(541) 953-9025":"Jim Ince","(530) 919-2946":"Maddie Reese","(541) 773-9861":"Connecting Point Computer Centers","(541) 941-7466":"Mark Tveskov","(541) 261-0301":"Gina Clark","(503) 224-4929":"New Renaissance Bookshop","(541) 862-1733":"Karen Allport","+32 497 87 61 39":"Theo Killian","(303) 484-8668":"Tamdin Wangdu","(541) 821-4630":"Svetlana Nelson","(541) 890-8508":"Mary Gabriel","(541) 840-7434":"Sergei Boutenko","*004*4157120874#":"Humin Activation","(360) 224-8178":"Robin Mari","(541) 552-6213":"Maia Halverson","(541) 399-6456":"Grey McClure","(541) 292-6019":"Kent Romney","(530) 926-9613":"Mount Shasta Avalanche Center","(703) 217-3421":"Beth Bardo","(541) 464-0758":"Rusty Willeford","(808) 463-1284":"Sierra Hess","(541) 643-8951":"Kristi Blain","(503) 208-0842":"Dylan","(718) 249-6999":"Minji Kang","(510) 812-5943":"Kevin Godshall","(541) 482-9217":"The Ashland Hostel","(541) 326-5525":"Nick DeYarman","(608) 516-7454":"Krista Hagman","(541) 556-8315":"Tyler Beyerlein","(888) 247-8605":"Therese Holliday","(458) 225-0016":"Martin Young","(541) 890-1807":"Louisa Chattou","(541) 326-2333":"Joe Delgado","(828) 702-0629":"Rachel Blackburn","(505) 983-3410":"Tom Singer Ph.D.","(707) 591-4955":"Elise Euphrat Baeli","(541) 488-2749":"Ashland Mountain Supply","(408) 960-5107":"Sarika Kathuria","(406) 404-4076":"Mollie Mustoe","+91 1892-221348":"Tibetan Children's Villages","(541) 944-2774":"Laney D'Aquino","(503) 309-2127":"Josh Sherman","(812) 345-7258":"Tom Berich","(541) 488-2211":"Ashland Police Department","(541) 261-5241":"Lauri Johnson","(323) 253-7663":"Elena","(541) 552-6217":"Molly Harris","(707) 766-4192":"Bethanie Maples","(808) 870-3340":"Joe Arias","(415) 562-7839":"Rudy","(541) 301-4970":"Melanie Smith","+32 492 77 17 47":"Theo Killian","(541) 531-8291":"Aaron Moffatt","(562) 412-1058":"Alexis Baello","(541) 488-6036":"Daniel Waldron","(503) 680-5513":"Susan Jane M. Brown","(541) 830-5613":"All Creatures","(510) 384-9494":"Leslie Griffiths","(800) MYAPPLE":"Apple Inc.","(831) 524-5650":"Duane Martinez","(541) 864-9529":"Jeff McAllister","(541) 513-7931":"Tyler Stanley","(503) 823-7404":"Portland Water Bureau","(541) 601-3959":"Kris Ballard","(503) 768-7090":"Lewis & Clark Financial Aid","(575) 770-1295":"Erik Schlenker-Goodrich","(541) 863-2011":"Cindy Talbot","(954) 270-2820":"Lauren Siegel","(541) 482-3633":"Soundpeace","(541) 431-0000":"Oak Street Medical","(530) 304-2631":"Vincent Shelton","(707) 275-2201":"Mark Henson","(541) 879-0222":"Sharon Lee","(530) 925-9628":"Jeffrey Matthew","(310) 800-5895":"Benjamin Whistler","(720) 404-1711":"Tamdin Wangdu","(541) 778-8120":"George Sexton","(541) 973-0254":"Huelz","(541) 601-3635":"Sunya Ince-Johannsen","(614) 361-2507":"Renata Harrison","(541) 359-3240":"Jackie Marlette","(818) 303-1706":"Jim Jones","(520) 248-1330":"Laura Kearsley","(541) 499-9257":"Sick Rick","(541) 776-7035":"Jackson Co. Animal Shelter","(503) 490-6300":"Tim Moore","(907) 439-2376":"Chani","(541) 430-8165":"Duane Smith","(503) 867-4255":"Christina Becker","(802) 249-2016":"Nicola Rossi","(406) 708-3062;122":"Sarah McMillan","(541) 552-8889":"Robert Clift","(347) 834-6157":"Michael Benjamin Smith","(541) 488-2205":"Ashland Community Hospital","(541) 625-3887":"Martin Young","(541) 631-8717":"Marta Getty","(541) 482-5181":"Get 'n Gear","(541) 973-1483":"Samir Lakhouiri","(541) 331-6240":"Shelly Hayward","(541) 863-2015":"Steve Rigel","(503) 479-5675":"Theo Killian","(541) 779-5435":"Black Bird Shopping Center","(541) 552-7012":"Matt Vogel","(541) 821-8523":"Leigh Madsen","(541) 840-6494":"David Morgan","(808) 542-0780":"Rachel Briggs","(541) 622-9882":"Doug","(707) 502-6124":"Nana Kwesi","(541) 297-4676":"Liz Brady","(541) 816-0382":"Candace Younghans","(310) 500-1134":"Kaitlin Dixon","(310) 463-8655":"Gary Lundgren","(541) 772-2257":"Valley Properties Southern or","(405) 229-0634":"Ally Beasley","(970) 443-3162":"Adrienne Craig","(703) 405-7786":"Sarah Ince","(541) 631-2235":"Leigh Madsen","(541) 601-4030":"Patrick","(415) 845-7888":"Natalie Barringer","(541) 659-4599":"Jonas Lohr","(760) 681-7989":"Joe Villaseñor","(541) 482-4256":"Euro-Mek Foreign Auto Repair","(425) 577-8998":"Keenan Ordon-Bakalian","(541) 772-3470":"Sandra Abell","(573) 631-6360":"Hallie Brennan","(541) 944-2134":"Patrick Michael Weber","(541) 337-7690":"Rachel Paisley","(541) 778-9665":"Shaun Franks","(541) 488-6004":"City of Ashland Utilities","(541) 488-7755":"Jeff McAllister","(770) 345-0697":"Jerry Ince","(310) 500-1136":"Shea Chapman","(541) 778-6075":"Brian Lovett","(415) 672-9221":"Lumin Egress","(541) 941-5971":"Nick Merrill","(503) 282-6588":"Oregon Action","(541) 488-2905":"Jackson Co. Fuel Commitee","(310) 908-1078":"Nicolene Fulton","(541) 292-8049":"Alexander Menashe","(541) 441-4275":"Anita Gomez","(541) 821-8401":"Jeff Golden","(917) 213-5831":"Tony","(415) 272-6616":"Gary Bobker","(888) 997-4447":"Oregon Trail Card","(530) 864-8458":"Derek Mangan","(541) 946-3549":"Joe Villaseñor","(503) 313-5416":"Carly Eichhorn","(406) 708-3058,Ext128":"Melissa Hornbein","(206) 487-7250,Ext132":"Andrew Hawley","(208) 596-2372":"Mollie Mustoe","(541) 482-1040":"John Wieczorek","(541) 690-6034":"Leon Pyle","(817) 729-2419":"Alicia Green","##004#":"YouMail Deactivate","(541) 858-3304":"Nick Merrill","(575) 613-4197,Ext137":"Erik Schlenker-Goodrich","(541) 941-5479":"Derek Roemer","(541) 773-2712":"Lindorf's Import Service","(650) 480-3248":"Digit","(541) 359-3238":"Pete Frost","(541) 821-3174":"Jesse Boutin","(707) 364-1289":"Kelsey Jean","(360) 433-5474":"Kristi Wright","(503) 901-6527":"Michael Washington","(541) 621-7317":"Theo Killian","(866) 268-6879":"Country Insurance","(720) 839-0484":"Hillary","(575) 613-8050,Ext134":"Kyle Tisdel","(775) 250-8110":"Joshua","(785) 215-2150":"Magdalene Serpa","(541) 837-3636":"Jim Ince","(808) 781-8578":"C.T. Ryder","(615) 589-5488":"Heather Terral","(866) 947-5995":"Ziply Tech Service","(541) 301-1144":"Birgit Johannsen","(541) 488-1661":"A Street Animal Clinic","(541) 601-4748":"Deb Schaaf","(541) 488-5470":"Bill","(503) 689-5466":"Byron Lloyd Harmon","(602) 696-6082":"Stephen Thorpe","(503) 358-2020":"Josh Crawley","(541) 301-1230":"David Adesman","(206) 819-3163":"Marlyn Twitchell","(541) 890-8253":"Nick Mantheakis","(541) 441-0842":"Rocky Garrotto","(541) 488-0436":"Wells Fargo Bank","(626) 840-1929":"Arlo Brooks","(541) 201-3899":"Animal Medical Hospital","266-278":"Xfinity Assistant","(541) 708-0030":"Mark Arinsberg","829-32":"L&C ALERTS","(541) 837-3738":"Tim Edwards","(303) 996-9616":"Stu Gillespie","(757) 547-6496":"Poffo Ortiz","(310) 261-5707":"Gary Kout","(469) 734-5473":"Michael Burleson","(575) 770-7501":"Kyle Tisdel","(503) 477-3207":"Eric Hempseed","504-09":"Resistbot","(845) 772-2555":"Marlee Goska","(503) 768-6649":"Janice Weis","(503) 517-9029":"OMPA Film & TV","(215) 839-6150":"John Henry Krause","(541) 601-6082":"John Leonis","(541) 660-5167":"Justin Sparks","(603) 969-2136":"Carys Wilkins","(831) 261-1020":"Aura","(214) 952-2412":"Richard Marin","(541) 210-4140":"Emery Way","(541) 324-6832":"Sherri Strandlien","(541) 899-3992":"Cherise Cottier","(917) 439-6639":"Rebecca Chauklin","(541) 708-3636":"Aaron Fein","(417) 827-7828":"Maral Ge","867-53":"Venmo Alerts","(541) 660-8147":"Brandon Ducharme","(541) 344-0675":"Doug Heiken","(541) 488-1579":"Ashland Shop 'n Kart","(541) 292-8201":"Michelle Glass","(304) 433-1827":"Sarah Gerbing","(541) 660-3709":"Amanda Bolint","(406) 471-3173":"Melissa Hornbein","(541) 621-9761":"Dale Shostrom","(541) 708-1883":"Sarah Rudeen","(541) 324-6422":"McClure's Auto Repair","(818) 515-5275":"Cory Rohr","(541) 708-0842":"Andy Harris","(631) 415-3401":"Kara Schnoes","(541) 941-7808":"Allison Doke","(503) 740-5826":"Tiffany","(541) 482-1744":"Dr. Mehdi Ghavam","(541) 488-8058":"Kobe Modern Japanese Cuisine","(541) 526-1212":"Wells Fargo Collections","(541) 591-6895":"Santiago Sandoval","(541) 261-9218":"Eric Peterson","(706) 296-6912":"Josiah Shoup","(541) 482-2111,435":"Claudia Alick","(503) 453-7199":"Jamey Strathman","(971) 340-5158":"John Buchanan","(406) 442-1766":"Matt Bishop","(541) 890-6080":"Ed Keller","(540) 903-5087":"James","(541) 482-8223":"The Siskiyou School","(541) 300-0500":"Jared","(541) 760-8276":"Zach Wagman","(541) 465-6732":"Brenda","(505) 278-9577,Ext130":"Rose Rushing","(541) 708-0136":"Sherri Strandlien","(707) 513-9005":"Dan Shaw","(541) 482-2363":"The Hilltop Collective","(916) 622-1149":"Jess Ring","(541) 414-7830":"Amaleah Leinenbach","(614) 209-3964":"Heather Morton","(541) 941-8229":"John Javna","(541) 420-8684":"Benji Nagel","(818) 288-7208":"Josh Thomas","(530) 953-5946":"Karen Flynn","(847) 271-5374":"Jeri","(541) 227-1507":"Kevin Godshall","(541) 261-3020":"Sam Moore","(541) 702-2383":"Leslie Griffiths","(630) 267-8355":"Michelle Loth","(541) 552-6760":"Jean Maxwell","(541) 779-0864":"Brian Zastoupil","(415) 618-9849":"Nana Kwesi","+212 6 80 69 12 92":"ايوب ايت حمو","(541) 531-2261":"Ariel","(907) 433-2009":"Rachel Briggs","(415) 515-5326":"Jackie Kramer","(541) 434-1463":"Nick Cady","(541) 359-3244,Ext113":"Lyndee Prill","(646) 373-0126":"Bala","(541) 482-8737":"Gloria Schwartz","(310) 463-8619":"Anne Lundgren","(541) 613-6180":"David","(541) 582-0648":"David Collings","(310) 890-9870":"Anndrea Samuelson","(503) 539-2980":"Cristo Rodríguez Escamilla","(443) 224-3321":"Hannah Lew","(505) 570-5567,Ext131":"Brian Sweeney","(818) 395-4743":"Mitch","(503) 222-7678":"Portland Mountain Rescue","(908) 330-5466":"Kaitlin Dixon","(214) 476-8755":"Ryan Shannon","(541) 261-0242":"Sarah Weis","(541) 482-2041":"Ashland DHS Office","(971) 285-3632,Ext119":"Sadie Normoyle","(541) 531-5641":"Darren Campbell","(650) 691-5772":"Michael Delgado","(541) 673-4403":"Bailey's Veterinary Clinic","(541) 708-5162":"Randolph Jones","(541) 326-9075":"Jasmine Karcey","(724) 944-4801":"Lo","(619) 708-8838":"Tomas Gomez-Arostigui","(541) 951-9194":"Jacob Schatz","(406) 461-8131":"Cindy McGinnis","(541) 846-6641":"Timothy White","(206) 790-1561":"Kayti Rodgers","(530) 375-7543":"Bridget Sarita","(541) 613-0107":"James Hughes","(541) 414-9196":"Brian Zastoupil","(541) 201-0777":"Rick Bleiweiss","(541) 291-2656":"Lara Finlay","(541) 482-2143":"Grange Co-Op: Ashland Retail Store","(800) 585-0774":"Adobe","(414) 349-0632":"Robert","(541) 890-6996":"Linda Sturgeon","(541) 324-7347":"Dave Marshall","(541) 282-7711":"Southern Oregon Veterinary Specialty Center","(907) 942-5511":"Merlin Himself","(541) 552-8407":"Carol Voisin","(888) 229-3770":"Best Buy Medford","(541) 499-1674":"AJ Meeker","(575) 613-8051,Ext138":"Kelly Nokes","(541) 779-8886":"Philip Yates","(575) 937-3568":"Tony DiMaggio","(541) 773-3617":"Rogue Pacific Lumber","(707) 570-5302":"Sierra Faulkner","(904) 477-0311":"Jim Jones","(503) 459-3253":"Sam Hoiland","(917) 449-8708":"Shael Norris","(541) 601-5027":"Mike Sorenson","(541) 951-2891":"Crystal Munoz","(503) 291-1545":"Carson Hockley","(503) 768-6707":"Daniel Rohlf","(541) 326-1249":"Lily Kurtz","(206) 579-5072":"Jen Calkins","(541) 324-3938":"Tye Austin","(715) 292-8437":"Dan Lehner","(773) 860-7800":"Molly Harris","(832) 728-8447":"Randy Ray","(541) 226-6856":"Douglas Kitzman","(505) 629-0732,Ext132":"Tannis Fox","(575) 224-6260,Ext133":"Ally Beasley","(415) 515-0785":"Mark Kitchell","(913) 909-5292":"Amber Heasley","(541) 842-0722":"Martin Young","(541) 951-4036":"Rebecca Vietz","(310) 940-9753":"Lucinda Loves","(614) 588-4464":"Morgan Staric"}