1import{r as m,j as e}from"./vendor-react-GnwsTJfO.js";import{u as F}from"./useAdminAuth-BXhWp9H6.js";import{A as G}from"./AdminPageLayout-BX0j6w8V.js";import{M as U}from"./MediaPulseTabs-DdA1xg9Y.js";import{B as g,C as V,g as $,I as x,i as S,j as w,k,l as C,m as p,R as B,T as O,o as D,p as R,q as u,r as W,t as d,f,U as n}from"./index-Bj2Y77AF.js";import{L as c}from"./label-9b9pu6HH.js";import{S as Y}from"./switch-DraYssLT.js";import{S as H}from"./mediepuls-DTpXr86E.js";import{u as J}from"./mediapulseConfig-DYU18ntG.js";import{R as L}from"./AdminNavigation-DYLQ05kD.js";import{T as Q}from"./trash-2-D673yTlG.js";import"./vendor-cjs-BcELrC9x.js";import"./alert-dialog-BHHcOqiA.js";import"./vendor-ui-C1xCQL2z.js";import"./vendor-supabase-BWPZKnGU.js";import"./vendor-utils-B2rm_Apj.js";import"./vendor-query-Dp4tHR6-.js";import"./MasonicCross-CB_Vslf8.js";import"./users-CHiFHZvy.js";import"./image-l440pP5V.js";const M={name:"",url:"",source_type:"lokalavis",credibility_level:3,default_reach_score:2,notes:"",feed_type:"manual",auto_analyze:!0},je=()=>{const{loading:E,role:y}=F({requiredRoles:["webmaster"]}),{config:r}=J(),[T,v]=m.useState([]),[a,l]=m.useState(M),[K,z]=m.useState(!1),[_,A]=m.useState(null);m.useEffect(()=>{l(s=>s.name===""&&s.url===""?{...s,source_type:r.default_source_type,credibility_level:r.default_credibility_level,default_reach_score:r.default_reach_score}:s)},[r.default_source_type,r.default_credibility_level,r.default_reach_score]);const j=async()=>{const{data:s}=await f.from("media_sources").select("*").order("name");v(s||[])};m.useEffect(()=>{y==="webmaster"&&j()},[y]);const P=async s=>{if(s.preventDefault(),!a.name)return n.error("Navn er pÃ¥krevd");z(!0);const{error:t}=await f.from("media_sources").insert({name:a.name,url:a.url||null,source_type:a.source_type,credibility_level:a.credibility_level,default_reach_score:a.default_reach_score,notes:a.notes||null,is_active:!0,feed_type:a.feed_type,auto_analyze:a.auto_analyze});z(!1),t?n.error(t.message):(n.success("Kilde lagt til"),l({...M,source_type:r.default_source_type,credibility_level:r.default_credibility_level,default_reach_score:r.default_reach_score}),j())},q=async s=>{if(!confirm("Slette kilden?"))return;const{error:t}=await f.from("media_sources").delete().eq("id",s);t?n.error(t.message):j()},I=async s=>{A(s||"all");const{data:t,error:i}=await f.functions.invoke("mediapulse-fetch-rss",{body:s?{source_id:s}:{}});if(A(null),i)return n.error("Henting feilet: "+i.message);const b=((t==null?void 0:t.report)||[]).reduce((N,h)=>N+(h.inserted||0),0);n.success(`Hentet ${b} nye omtaler fra ${(t==null?void 0:t.processed)??0} kilde(r)`),j()};return E||y!=="webmaster"?null:e.jsxs(G,{title:"Kilder",breadcrumbs:[{label:"Mediepuls",href:"/admin/mediepuls"},{label:"Kilder"}],children:[e.jsx(U,{}),e.jsx("div",{className:"mb-4 flex justify-end",children:e.jsxs(g,{variant:"outline",size:"sm",onClick:()=>I(),disabled:_==="all",children:[e.jsx(L,{className:`mr-2 h-4 w-4 ${_==="all"?"animate-spin":""}`}),"Hent alle RSS-feeder nÃ¥"]})}),e.jsx(V,{className:"mb-6",children:e.jsxs($,{className:"pt-6",children:[e.jsxs("form",{onSubmit:P,className:"grid gap-3 md:grid-cols-6",children:[e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(c,{children:"Navn *"}),e.jsx(x,{value:a.name,onChange:s=>l({...a,name:s.target.value})})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(c,{children:"URL / RSS-feed"}),e.jsx(x,{value:a.url,onChange:s=>l({...a,url:s.target.value}),placeholder:a.feed_type==="google_alerts_rss"?"https://www.google.com/alerts/feeds/...":""})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(c,{children:"Kildetype"}),e.jsxs(S,{value:a.source_type,onValueChange:s=>l({...a,source_type:s}),children:[e.jsx(w,{children:e.jsx(k,{})}),e.jsx(C,{children:H.map(s=>e.jsx(p,{value:s.value,children:s.label},s.value))})]})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(c,{children:"Inntak"}),e.jsxs(S,{value:a.feed_type,onValueChange:s=>l({...a,feed_type:s}),children:[e.jsx(w,{children:e.jsx(k,{})}),e.jsxs(C,{children:[e.jsx(p,{value:"manual",children:"Manuell registrering"}),e.jsx(p,{value:"google_alerts_rss",children:"Google Alerts (RSS)"}),e.jsx(p,{value:"rss",children:"Generisk RSS / Atom"})]})]})]}),e.jsxs("div",{className:"md:col-span-2 flex items-center gap-2 pt-6",children:[e.jsx(Y,{id:"auto-analyze",checked:a.auto_analyze,onCheckedChange:s=>l({...a,auto_analyze:s})}),e.jsx(c,{htmlFor:"auto-analyze",className:"mb-0",children:"Auto-analyser med AI"})]}),e.jsxs("div",{children:[e.jsx(c,{children:"Troverdighet (1â5)"}),e.jsx(x,{type:"number",min:1,max:5,value:a.credibility_level,onChange:s=>l({...a,credibility_level:parseInt(s.target.value)})})]}),e.jsxs("div",{children:[e.jsx(c,{children:"Rekkevidde (1â5)"}),e.jsx(x,{type:"number",min:1,max:5,value:a.default_reach_score,onChange:s=>l({...a,default_reach_score:parseInt(s.target.value)})})]}),e.jsxs("div",{className:"md:col-span-3",children:[e.jsx(c,{children:"Notater"}),e.jsx(x,{value:a.notes,onChange:s=>l({...a,notes:s.target.value})})]}),e.jsx("div",{className:"md:col-span-1 flex items-end",children:e.jsxs(g,{type:"submit",disabled:K,children:[e.jsx(B,{className:"mr-1 h-4 w-4"}),"Legg til"]})})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-3",children:[e.jsx("strong",{children:"Google Alerts:"})," Opprett en alert pÃ¥"," ",e.jsx("a",{href:"https://www.google.com/alerts",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"google.com/alerts"}),", velg leveringsmetode ",e.jsx("em",{children:"RSS-feed"}),", kopier feed-URL og lim inn over. Systemet henter automatisk hver time."]})]})}),e.jsx("div",{className:"rounded-md border",children:e.jsxs(O,{children:[e.jsx(D,{children:e.jsxs(R,{children:[e.jsx(u,{children:"Navn"}),e.jsx(u,{children:"Inntak"}),e.jsx(u,{children:"Type"}),e.jsx(u,{children:"Siste henting"}),e.jsx(u,{children:"Notater"}),e.jsx(u,{className:"text-right",children:"Handlinger"})]})}),e.jsxs(W,{children:[T.map(s=>{var t;return e.jsxs(R,{children:[e.jsxs(d,{className:"font-medium",children:[s.name,s.url&&e.jsx("div",{className:"text-xs text-muted-foreground break-all",children:s.url})]}),e.jsxs(d,{className:"text-sm",children:[s.feed_type==="google_alerts_rss"?"Google Alerts":s.feed_type==="rss"?"RSS":"Manuell",s.auto_analyze&&s.feed_type!=="manual"&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"AI-auto"})]}),e.jsx(d,{children:e.jsxs(S,{value:s.source_type??"",onValueChange:async i=>{const b=s.source_type;v(h=>h.map(o=>o.id===s.id?{...o,source_type:i}:o));const{error:N}=await f.from("media_sources").update({source_type:i}).eq("id",s.id);N?(v(h=>h.map(o=>o.id===s.id?{...o,source_type:b}:o)),n.error("Kunne ikke oppdatere kildetype")):n.success("Kildetype oppdatert")},children:[e.jsx(w,{className:"h-8 text-xs w-[150px]",children:e.jsx(k,{placeholder:"â"})}),e.jsx(C,{children:H.map(i=>e.jsx(p,{value:i.value,children:i.label},i.value))})]})}),e.jsx(d,{className:"text-xs",children:s.last_fetched_at?e.jsxs(e.Fragment,{children:[e.jsx("div",{children:new Date(s.last_fetched_at).toLocaleStr
1ing("nb-NO")}),e.jsxs("div",{className:(t=s.last_fetch_status)!=null&&t.startsWith("error")?"text-destructive":"text-muted-foreground",children:[s.last_fetch_status," · ",s.last_fetch_count," nye"]})]}):e.jsx("span",{className:"text-muted-foreground",children:"â"})}),e.jsx(d,{className:"text-sm",children:s.notes}),e.jsxs(d,{className:"text-right",children:[(s.feed_type==="google_alerts_rss"||s.feed_type==="rss")&&e.jsx(g,{size:"sm",variant:"ghost",onClick:()=>I(s.id),disabled:_===s.id,title:"Hent nÃ¥",children:e.jsx(L,{className:`h-4 w-4 ${_===s.id?"animate-spin":""}`})}),e.jsx(g,{size:"sm",variant:"ghost",onClick:()=>q(s.id),title:"Slett",children:e.jsx(Q,{className:"h-4 w-4"})})]})]},s.id)}),T.length===0&&e.jsx(R,{children:e.jsx(d,{colSpan:6,className:"text-center py-6 text-muted-foreground",children:"Ingen kilder."})})]})]})})]})};export{je as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.