import { cli } from '@jackwener/opencli/registry';
cli({
    site: 'instagram',
    name: 'profile',
    access: 'read',
    description: 'Get Instagram user profile info',
    domain: 'www.instagram.com',
    args: [
        { name: 'username', required: true, positional: true, help: 'Instagram username' },
    ],
    columns: ['username', 'name', 'followers', 'following', 'posts', 'verified', 'bio'],
    pipeline: [
        { navigate: 'https://www.instagram.com' },
        { evaluate: `(async () => {
  const username = \${{ args.username | json }};
  const res = await fetch(
    'https://www.instagram.com/api/v1/users/web_profile_info/?username=' + encodeURIComponent(username),
    {
      credentials: 'include',
      headers: { 'X-IG-App-ID': '936619743392459' }
    }
  );
  if (!res.ok) throw new Error('HTTP ' + res.status + ' - make sure you are logged in to Instagram');
  const data = await res.json();
  const u = data?.data?.user;
  if (!u) throw new Error('User not found: ' + username);
  return [{
    username: u.username,
    name: u.full_name || '',
    bio: (u.biography || '').replace(/\\n/g, ' ').substring(0, 120),
    followers: u.edge_followed_by?.count ?? 0,
    following: u.edge_follow?.count ?? 0,
    posts: u.edge_owner_to_timeline_media?.count ?? 0,
    verified: u.is_verified ? 'Yes' : 'No',
    url: 'https://www.instagram.com/' + u.username,
  }];
})()
` },
    ],
});
