import requests import json import base64 import time import warnings warnings.filterwarnings("ignore") # --- CONFIGURACIÓN --- TAVILY_API_KEY = "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" WP_USER = "selena@martincid.com" WP_PASS = "HNlO z0Sw dxfw zU8I epFn 3cqV".replace(" ", "") WP_URL = "https://es.martincid.com/wp-json/wp/v2" OLLAMA_URL = "http://localhost:11434/api/generate" MODELO_IA = "mixtral:latest" MUSEOS = ["Museo de la Orangerie", "Musée d'Orsay", "Museo Rodin", "Centro Pompidou"] def get_auth(): token = base64.b64encode(f"{WP_USER}:{WP_PASS}".encode()).decode() return {"Authorization": f"Basic {token}"} # --- INVESTIGACIÓN (TAVILY) --- def investigar(museo): print(f"🕵️ Investigando {museo}...") url = "https://api.tavily.com/search" payload = { "api_key": TAVILY_API_KEY, "query": f"crítica de arte actual {museo} Paris enero 2026", "search_depth": "advanced", "max_results": 5, "include_answer": True } try: r = requests.post(url, json=payload, timeout=40) data = r.json() return f"SÍNTESIS: {data.get('answer','')}\n\n" + "\n".join([res['content'] for res in data.get('results',[])]) except: return "" # --- REDACCIÓN (SELENA LITERARIA) --- def redactar(museo, dossier): print(f"✍️ Selena escribiendo ensayo sobre {museo}...") prompt = f"Escribe un ensayo de CRÍTICA DE ARTE de 1000 palabras en español sobre {museo} en París (Enero 2026). Estilo elegante, nada de guías turísticas. Usa

para secciones. Info: {dossier}" try: r = requests.post(OLLAMA_URL, json={"model": MODELO_IA, "prompt": prompt, "stream": False, "options": {"num_predict": 4096, "temperature": 0.7}}, timeout=1200) texto = r.json().get('response', '').strip() partes = texto.split('\n', 1) return partes[0].strip('# '), partes[1].replace('**', '') except: return None, None # --- PUBLICACIÓN INTELIGENTE (IMAGEN + TAGS LIMPIOS) --- def publicar(museo, titulo, contenido): print(f"🚀 Publicando {museo}...") # 1. Tags (Selección inteligente) tag_ids = [] try: res_t = requests.post(OLLAMA_URL, json={"model": MODELO_IA, "prompt": f"Dame 3 palabras clave de arte para: {titulo}", "stream": False}) for n in res_t.json()['response'].replace('.','').split(','): n = n.strip().capitalize() # Buscar si el tag existe para no duplicar check = requests.get(f"{WP_URL}/tags?search={n}", headers=get_auth()).json() if check: tag_ids.append(check[0]['id']) else: r_new = requests.post(f"{WP_URL}/tags", headers=get_auth(), json={"name": n}) if r_new.status_code == 201: tag_ids.append(r_new.json()['id']) except: pass # 2. Imagen img_id = None try: img_raw = requests.get(f"https://source.unsplash.com/1200x800/?art,museum,{museo.replace(' ','')}").content h = get_auth(); h['Content-Disposition'] = f'attachment; filename={museo}.jpg'; h['Content-Type'] = 'image/jpeg' r_img = requests.post(f"{WP_URL}/media", headers=h, data=img_raw) img_id = r_img.json().get('id') except: pass # 3. Post r_cat = requests.get(f"{WP_URL}/categories?slug=arte", headers=get_auth()).json() id_cat = r_cat[0]['id'] if r_cat else 1 payload = {"title": titulo, "content": contenido, "status": "draft", "categories": [id_cat], "tags": tag_ids, "featured_media": img_id} requests.post(f"{WP_URL}/posts", headers=get_auth(), json=payload) print(f"✅ Borrador listo para {museo}") if __name__ == "__main__": for m in MUSEOS: info = investigar(m) if info: t, c = redactar(m, info) if t: publicar(m, t, c) time.sleep(10) 』誌の記事

アリス・ランゲ (Alice Lange)

American Recital Debut Award、チェリスト ガブリエル・マルチンスをカーネギー・ホールで紹介

米国とブラジルにルーツを持つチェリスト、ガブリエル・マルチンスが、ピアニストのビクター・サンティアゴ・アスンシオンとともに、カーネギー・ホールのウェイル・リサイタル・ホールでリサイタルを行う。プログラムは、バロックを出発 […]

アリス・ランゲ (Alice Lange)

カーター・フェイスの世界観:チワワ、ケイシー・マスグレイヴス、そしてビリー・ボブ・ソーントンが紡ぐデビューアルバム『Cherry Valley』

カーター・フェイスの世界では、インスピレーションはあらゆるところに潜んでいます。テネシーを深夜にドライブしている時もあれば、トラックストップで偶然出会った一匹のチワワからひらめきを得ることも。彼女のデビューアルバム**『 […]

アリス・ランゲ (Alice Lange)

ロックスター: デュキ、フロム・エンド・オブ・ザ・ワールド – Netflixがアルゼンチンのアーバンミュージック・アーティストの知られざる世界に迫る

アイタナ、カロルG、さらにはロビン・ウィリアムズといった有名歌手を例に挙げても、このようなドキュメンタリーは枚挙にいとまがありません。Netflixが関われば、マイケル・ジョーダンやメッシでさえもインタビューに応じること […]

アリス・ランゲ (Alice Lange)

ベアトリーチェ・ラナ、プロコフィエフ/ドビュッシー/チャイコフスキーを軸に北米リサイタル・ツアーを開始

イタリアのピアニスト、ベアトリーチェ・ラナが北米各地でリサイタル・ツアーを行う。プログラムは20世紀ロシア作品とドビュッシー後期の《エチュード》第2巻を中心に構成される。行程には、モントリオールのブルジー・ホール(Bou […]

アリス・ランゲ (Alice Lange)