<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neko/importer, branch opml-import-cli</title>
<subtitle>self-hosted, single user rss reader</subtitle>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/'/>
<entry>
<title>feat: Add OPML import functionality via CLI</title>
<updated>2025-05-22T23:41:54+00:00</updated>
<author>
<name>google-labs-jules[bot]</name>
<email>161369871+google-labs-jules[bot]@users.noreply.github.com</email>
</author>
<published>2025-05-22T23:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=7f26740f4c4905cad6b71ea749b83fa5a51c1a0f'/>
<id>7f26740f4c4905cad6b71ea749b83fa5a51c1a0f</id>
<content type='text'>
This change introduces the ability to import feeds from an OPML file
using a command-line interface.

Key features:
- New `--import-opml` (or `-I`) flag in `main.go` to specify the
  OPML file path.
- The `importer.ImportOPML` function in `importer/importer.go` handles
  the parsing of the OPML file (using `github.com/gilliek/go-opml`)
  and addition of new feeds to the database.
- Recursive processing of OPML outlines allows for importing feeds
  nested within folders.
- Feeds are identified by their XML URL; existing feeds with the
  same URL are skipped to avoid duplicates.
- Title extraction prioritizes the `title` attribute, then the `text`
  attribute of an outline, and falls back to "Untitled Feed".

Comprehensive unit tests have been added in `importer/importer_test.go`
to verify:
- Correct parsing and importing of various OPML structures.
- Proper handling of duplicate feeds (skipping).
- Correct title extraction logic.
- Database interaction and cleanup.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change introduces the ability to import feeds from an OPML file
using a command-line interface.

Key features:
- New `--import-opml` (or `-I`) flag in `main.go` to specify the
  OPML file path.
- The `importer.ImportOPML` function in `importer/importer.go` handles
  the parsing of the OPML file (using `github.com/gilliek/go-opml`)
  and addition of new feeds to the database.
- Recursive processing of OPML outlines allows for importing feeds
  nested within folders.
- Feeds are identified by their XML URL; existing feeds with the
  same URL are skipped to avoid duplicates.
- Title extraction prioritizes the `title` attribute, then the `text`
  attribute of an outline, and falls back to "Untitled Feed".

Comprehensive unit tests have been added in `importer/importer_test.go`
to verify:
- Correct parsing and importing of various OPML structures.
- Proper handling of duplicate feeds (skipping).
- Correct title extraction logic.
- Database interaction and cleanup.
</pre>
</div>
</content>
</entry>
<entry>
<title>change to personal namespace</title>
<updated>2017-02-08T03:30:39+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2017-02-08T03:30:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=bd763cada02d04bcde16c53faec3352aff528002'/>
<id>bd763cada02d04bcde16c53faec3352aff528002</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix paths, again</title>
<updated>2017-02-03T03:55:51+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2017-02-03T03:55:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=637bf62b09e0fbe749369eb013c7d0536728e296'/>
<id>637bf62b09e0fbe749369eb013c7d0536728e296</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>neko v2 initial commit</title>
<updated>2017-01-24T04:04:03+00:00</updated>
<author>
<name>Adam Mathes</name>
<email>adam@trenchant.org</email>
</author>
<published>2017-01-24T04:04:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adammathes.com/neko/commit/?id=93d6d36eb697cd9452eb4aab446151a1a33ed245'/>
<id>93d6d36eb697cd9452eb4aab446151a1a33ed245</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
