feat: clean up html readability; add autm. tag creation

This commit is contained in:
Eugen Eisler 2024-10-03 00:12:23 +02:00
parent 3990fe013b
commit 42b5cb4413
9 changed files with 64 additions and 55 deletions

View File

@ -64,7 +64,7 @@ jobs:
GOOS: ${{ env.OS }}
GOARCH: ${{ matrix.arch }}
run: |
go build -ldflags "-X main.version=$(git describe --tags --abbrev=0)" -o fabric-${OS}-${{ matrix.arch }} .
go build -o fabric-${OS}-${{ matrix.arch }} .
- name: Build binary on Windows
if: matrix.os == 'windows-latest'
@ -72,7 +72,7 @@ jobs:
GOOS: windows
GOARCH: ${{ matrix.arch }}
run: |
go build -ldflags "-X main.version=$(git describe --tags --abbrev=0)" -o fabric-windows-${{ matrix.arch }}.exe .
go build -o fabric-windows-${{ matrix.arch }}.exe .
- name: Upload build artifact
if: matrix.os != 'windows-latest'

View File

@ -1,11 +1,9 @@
name: Update Version File
name: Update Version and Create Tag
on:
push:
branches:
- main # Or whichever branch you want to monitor
tags:
- '*' # Trigger on any new tag
- main # Monitor the main branch
permissions:
contents: write # Ensure the workflow has write permissions
@ -28,32 +26,43 @@ jobs:
- name: Get the latest tag
id: get_latest_tag
run: |
latest_tag=$(git describe --tags --abbrev=0)
latest_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
echo "Latest tag is: $latest_tag"
echo "::set-output name=tag::$latest_tag"
- name: Get the latest commit hash
id: get_commit_hash
- name: Increment minor version
id: increment_version
run: |
commit_hash=$(git rev-parse --short HEAD)
echo "Commit hash is: $commit_hash"
echo "::set-output name=commit_hash::$commit_hash"
latest_tag=${{ steps.get_latest_tag.outputs.tag }}
IFS='.' read -r major minor patch <<<"${latest_tag#v}"
new_minor=$((minor + 1))
new_tag="v${major}.${new_minor}.0"
echo "New tag is: $new_tag"
echo "::set-output name=new_tag::$new_tag"
- name: Update version.go file
run: |
latest_tag=${{ steps.get_latest_tag.outputs.tag }}
commit_hash=${{ steps.get_commit_hash.outputs.commit_hash }}
new_tag=${{ steps.increment_version.outputs.new_tag }}
commit_hash=$(git rev-parse --short HEAD)
echo "package main" > version.go
echo "" >> version.go
echo "var version = \"${latest_tag}-${commit_hash}\"" >> version.go
echo "var version = \"${new_tag}-${commit_hash}\"" >> version.go
- name: Commit changes
run: |
git add version.go
git commit -m "Update version to ${{ steps.get_latest_tag.outputs.tag }} and commit ${{ steps.get_commit_hash.outputs.commit_hash }}"
git commit -m "Update version to ${{ steps.increment_version.outputs.new_tag }} and commit $commit_hash"
- name: Push changes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Use GITHUB_TOKEN to authenticate the push
run: |
git push origin main # Or the relevant branch
git push origin main # Push changes to the main branch
- name: Create a new tag
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
new_tag=${{ steps.increment_version.outputs.new_tag }}
git tag $new_tag
git push origin $new_tag # Push the new tag

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ __pycache__/
# Distribution / packaging
.Python
.idea
build/
develop-eggs/
dist/

View File

@ -243,8 +243,8 @@ Application Options:
-e, --seed= Seed to be used for LMM generation
-w, --wipecontext= Wipe context
-W, --wipesession= Wipe session
--readability Convert HTML input into a clean, readable view
--dry-run Show what would be sent to the model without actually sending it
--readability Turn web page into a clean view
--version Print current version
Help Options:

View File

@ -2,6 +2,7 @@ package cli
import (
"fmt"
"github.com/danielmiessler/fabric/converter"
"os"
"path/filepath"
"strconv"
@ -110,6 +111,14 @@ func Cli(version string) (message string, err error) {
return
}
if currentFlags.HtmlReadability {
if msg, cleanErr := converter.HtmlReadability(currentFlags.Message); cleanErr != nil {
fmt.Println("use original input, because can't apply html readability", err)
} else {
currentFlags.Message = msg
}
}
// if the interactive flag is set, run the interactive function
// if currentFlags.Interactive {
// interactive.Interactive()
@ -193,14 +202,6 @@ func Cli(version string) (message string, err error) {
}
}
if currentFlags.HtmlReadability {
if msg, err := core.HtmlReadability(currentFlags.Message); err != nil {
fmt.Println("use readability parser msg err:", err)
} else {
currentFlags.Message = msg
}
}
var chatter *core.Chatter
if chatter, err = fabric.GetChatter(currentFlags.Model, currentFlags.Stream, currentFlags.DryRun); err != nil {
return

View File

@ -46,8 +46,8 @@ type Flags struct {
Seed int `short:"e" long:"seed" description:"Seed to be used for LMM generation"`
WipeContext string `short:"w" long:"wipecontext" description:"Wipe context"`
WipeSession string `short:"W" long:"wipesession" description:"Wipe session"`
HtmlReadability bool `long:"readability" description:"Convert HTML input into a clean, readable view"`
DryRun bool `long:"dry-run" description:"Show what would be sent to the model without actually sending it"`
HtmlReadability bool `long:"readability" description:"Turn web page into a clean view"`
Version bool `long:"version" description:"Print current version"`
}

View File

@ -0,0 +1,25 @@
package converter
import (
"bytes"
"github.com/go-shiori/go-readability"
)
// HtmlReadability Convert HTML input into a clean, readable view
// args
//
// html (string): full data of web page
//
// return
//
// viewContent (string): html main content
// err (error): parser error
func HtmlReadability(html string) (ret string, err error) {
buf := bytes.NewBufferString(html)
var article readability.Article
if article, err = readability.FromReader(buf, nil); err != nil {
return
}
ret = article.TextContent
return
}

View File

@ -1,4 +1,4 @@
package core
package converter
import (
"testing"

View File

@ -1,27 +0,0 @@
package core
import (
"bytes"
"fmt"
"github.com/go-shiori/go-readability"
)
// HtmlReadability Turn any web page into a clean view
// args
//
// html (string): full data of web page
//
// return
//
// viewContent (string): html main content
// err (error): parser error
func HtmlReadability(html string) (viewContent string, err error) {
buf := bytes.NewBufferString(html)
article, err := readability.FromReader(buf, nil)
if err != nil {
return "", err
}
fmt.Println("MAIN-CONTENT:", article.TextContent)
return article.TextContent, nil
}