Compare commits
46 Commits
0f3da6952b
..
v0.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 9204fed54c | |||
| 406d0f5652 | |||
| 9cd651bdfe | |||
| 96336fd637 | |||
| e7d1b4b524 | |||
| a4d7269f8f | |||
| c7d741d15b | |||
| 6d2a6c5925 | |||
| 9ccb929553 | |||
| 5e086c0598 | |||
| a7c86289b3 | |||
| b2e851d765 | |||
| 1a1d7dec7c | |||
| 103da6abe8 | |||
| 5f2fdbac87 | |||
| e0ceb7d314 | |||
| 8df80eba3b | |||
| 77875110f0 | |||
| ddbc6affd1 | |||
| cd41eea0d9 | |||
| d15ecd926c | |||
| 78774abffd | |||
| a8cc182265 | |||
| 65e03c2586 | |||
| 45c4379d53 | |||
| 55d65f4841 | |||
| 3f4feb9dc9 | |||
| 45479d9df7 | |||
| 1d077fe1cc | |||
| 2046939d8a | |||
| 02d2a26a82 | |||
| c00fb3234c | |||
| 6922303e52 | |||
| 3ffad3abbe | |||
| 68afe22526 | |||
| 28fe48c3f0 | |||
| 8cd0dc6c81 | |||
| 8c4a3def23 | |||
| ef41d46e50 | |||
| f8eba6b8dd | |||
| 99581df6f7 | |||
| 6991af3daa | |||
| 04ca70dc67 | |||
| cd159509a0 | |||
| ea7604a05f | |||
| 622a751c40 |
@@ -24,13 +24,6 @@ jobs:
|
|||||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||||
echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
|
echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Login to own image registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: gitea.penry.de
|
|
||||||
username: ${{ secrets.REGISTRY_USER }}
|
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Setup .NET10
|
- name: Setup .NET10
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
@@ -42,8 +35,16 @@ jobs:
|
|||||||
-t gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }} \
|
-t gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }} \
|
||||||
-t gitea.penry.de/${{ env.REPO_LC }}:latest \
|
-t gitea.penry.de/${{ env.REPO_LC }}:latest \
|
||||||
--label "org.opencontainers.image.source=https://gitea.penry.de/${{ github.repository }}" \
|
--label "org.opencontainers.image.source=https://gitea.penry.de/${{ github.repository }}" \
|
||||||
|
--build-arg VERSION=${{ env.VERSION }} \
|
||||||
.
|
.
|
||||||
|
|
||||||
|
- name: Login to own image registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: gitea.penry.de
|
||||||
|
username: ${{ secrets.REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
|
||||||
- name: Push Images
|
- name: Push Images
|
||||||
run: |
|
run: |
|
||||||
docker push gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }}
|
docker push gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- v0.1.0-beta
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-docker-linux-arm64:
|
build-docker-linux-arm64:
|
||||||
@@ -15,6 +14,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
@@ -22,22 +23,55 @@ jobs:
|
|||||||
- name: Get Repository Name
|
- name: Get Repository Name
|
||||||
id: get_repo
|
id: get_repo
|
||||||
run: |
|
run: |
|
||||||
echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
|
REPO_LC="${GITHUB_REPOSITORY,,}"
|
||||||
|
echo "REPO_LC=$REPO_LC" >> $GITHUB_ENV
|
||||||
|
echo "Repo: $REPO_LC"
|
||||||
|
|
||||||
- name: Get version
|
- name: Build version
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
VERSION=${GITHUB_REF#refs/tags/v}
|
LAST_TAG=$(git describe --tags --abbrev=0)
|
||||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
||||||
echo "ASSEMBLY_VERSION=${VERSION}.0" >> $GITHUB_ENV
|
if [[ -z "${LAST_TAG:-}" ]]; then
|
||||||
echo "FILE_VERSION=${VERSION}.0" >> $GITHUB_ENV
|
echo "No tag found"
|
||||||
echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMMIT_COUNT=$(git rev-list $LAST_TAG..HEAD --count)
|
||||||
|
|
||||||
|
if [[ "$LAST_TAG" == *-* ]]; then
|
||||||
|
TEMP_LAST_TAG="${LAST_TAG%-*}"
|
||||||
|
VERSION="${TEMP_LAST_TAG}-nightly.${COMMIT_COUNT}"
|
||||||
|
else
|
||||||
|
VERSION="${LAST_TAG}-nightly.${COMMIT_COUNT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "LAST_TAG=$LAST_TAG" >> "$GITHUB_ENV"
|
||||||
|
echo "COMMIT_COUNT=$COMMIT_COUNT" >> "$GITHUB_ENV"
|
||||||
|
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
echo "Last tag: $LAST_TAG"
|
||||||
|
echo "Commit count: $COMMIT_COUNT"
|
||||||
|
echo "Final version: $VERSION"
|
||||||
|
|
||||||
- name: Build Linux ARM64 Docker Image
|
- name: Build Linux ARM64 Docker Image
|
||||||
run: |
|
run: |
|
||||||
docker build \
|
docker build \
|
||||||
-t gitea.penry.de/${{ env.REPO_LC }}:latest \
|
-t gitea.penry.de/${{ env.REPO_LC }}:nightly \
|
||||||
|
--build-arg VERSION=${{ env.VERSION }} \
|
||||||
.
|
.
|
||||||
|
|
||||||
|
- name: Login to own image registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: gitea.penry.de
|
||||||
|
username: ${{ secrets.REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Push Images
|
||||||
|
run: |
|
||||||
|
docker push gitea.penry.de/${{ env.REPO_LC }}:nightly
|
||||||
|
|
||||||
- name: Save Docker Image to Tar
|
- name: Save Docker Image to Tar
|
||||||
run: docker save -o CouchLog-Linux-ARM64-Docker-Image.tar gitea.penry.de/${{ env.REPO_LC }}:nightly
|
run: docker save -o CouchLog-Linux-ARM64-Docker-Image.tar gitea.penry.de/${{ env.REPO_LC }}:nightly
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<MudCardMedia Image="@GlobalEntity.PicturePath" Height="400" Style="object-fit: contain;"/>
|
<MudCardMedia Image="@GlobalEntity.PicturePath" Height="400" Style="object-fit: contain;"/>
|
||||||
</MudPaper>
|
</MudPaper>
|
||||||
<MudCardContent>
|
<MudCardContent>
|
||||||
<MudText Typo="Typo.h5">@GlobalEntity.Title</MudText>
|
<MudText Typo="Typo.h5" Style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">@GlobalEntity.Title</MudText>
|
||||||
</MudCardContent>
|
</MudCardContent>
|
||||||
<MudCardActions>
|
<MudCardActions>
|
||||||
<MudTooltip Text="Add to shared List">
|
<MudTooltip Text="Add to shared List">
|
||||||
|
|||||||
@@ -120,6 +120,9 @@
|
|||||||
|
|
||||||
//Picture
|
//Picture
|
||||||
private IBrowserFile? _pictureFile;
|
private IBrowserFile? _pictureFile;
|
||||||
|
private string _pictureBase64;
|
||||||
|
private string? _pictureContentType;
|
||||||
|
private string? _pictureExtension;
|
||||||
|
|
||||||
private class GlobalEntityFormModel
|
private class GlobalEntityFormModel
|
||||||
{
|
{
|
||||||
@@ -165,8 +168,11 @@
|
|||||||
using var ms = new MemoryStream();
|
using var ms = new MemoryStream();
|
||||||
await stream.CopyToAsync(ms);
|
await stream.CopyToAsync(ms);
|
||||||
|
|
||||||
var base64 = Convert.ToBase64String(ms.ToArray());
|
_pictureContentType = _pictureFile.ContentType;
|
||||||
_imagePreview = $"data:{_pictureFile.ContentType};base64,{base64}";
|
_pictureExtension = Path.GetExtension(_pictureFile.Name);
|
||||||
|
|
||||||
|
_pictureBase64 = Convert.ToBase64String(ms.ToArray());
|
||||||
|
_imagePreview = $"data:{_pictureFile.ContentType};base64,{_pictureBase64}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Cancel() => MudDialog.Cancel();
|
private void Cancel() => MudDialog.Cancel();
|
||||||
@@ -191,13 +197,10 @@
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string fileName = $"{Guid.NewGuid()}{Path.GetExtension(_pictureFile.Name)}";
|
string fileName = $"{Guid.NewGuid()}{_pictureExtension}";
|
||||||
string picturePath = Path.Combine("wwwroot", "Pictures", fileName);
|
string picturePath = Path.Combine("wwwroot", "Pictures", fileName);
|
||||||
|
|
||||||
await using (var fs = File.Create(picturePath))
|
await File.WriteAllBytesAsync(picturePath, Convert.FromBase64String(_pictureBase64));
|
||||||
{
|
|
||||||
await _pictureFile.OpenReadStream(maxAllowedSize: 10_000_000).CopyToAsync(fs);
|
|
||||||
}
|
|
||||||
|
|
||||||
var entity = new GlobalEntity
|
var entity = new GlobalEntity
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -151,7 +151,7 @@
|
|||||||
|
|
||||||
private async Task OnNewEntity(GlobalEntity entity)
|
private async Task OnNewEntity(GlobalEntity entity)
|
||||||
{
|
{
|
||||||
_globalEntities.Add(entity);
|
_globalEntities.Insert(0, entity);
|
||||||
await RefreshPage();
|
await RefreshPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<MudStack Class="pa-3" Spacing="2">
|
<MudStack Class="pa-3" Spacing="2">
|
||||||
<!--<editor-fold desc="Options">-->
|
<!--<editor-fold desc="Options">-->
|
||||||
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween">
|
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween">
|
||||||
<MudText Typo="Typo.h6">@PrivateEntity.GlobalEntity.Title</MudText>
|
<MudText Typo="Typo.h6" Style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap">@PrivateEntity.GlobalEntity.Title</MudText>
|
||||||
<MudMenu Icon="@Icons.Material.Filled.MoreVert" Color="Color.Default" Dense="true">
|
<MudMenu Icon="@Icons.Material.Filled.MoreVert" Color="Color.Default" Dense="true">
|
||||||
<MudMenuItem>Edit</MudMenuItem>
|
<MudMenuItem>Edit</MudMenuItem>
|
||||||
<MudMenuItem OnClick="@(() => OnRemove.InvokeAsync())">Remove</MudMenuItem>
|
<MudMenuItem OnClick="@(() => OnRemove.InvokeAsync())">Remove</MudMenuItem>
|
||||||
@@ -40,45 +40,50 @@
|
|||||||
</MudSelect>
|
</MudSelect>
|
||||||
<!--</editor-fold>-->
|
<!--</editor-fold>-->
|
||||||
|
|
||||||
<!--<editor-fold desc="Dropdown-Season">-->
|
<!-- @if (PrivateEntity.GlobalEntity.MediaType.Name == "Series" || PrivateEntity.GlobalEntity.MediaType.Name == "Anime") -->
|
||||||
<MudSelect
|
<!--{-->
|
||||||
T="int?"
|
<!--<editor-fold desc="Dropdown-Season">-->
|
||||||
Value="PrivateEntity.Season"
|
<MudSelect
|
||||||
ValueChanged="@(newSeason => OnSeasonChange.InvokeAsync(newSeason))"
|
T="int?"
|
||||||
Dense="true"
|
Value="PrivateEntity.Season"
|
||||||
Variant="Variant.Outlined"
|
ValueChanged="@(newSeason => OnSeasonChange.InvokeAsync(newSeason))"
|
||||||
Label="">
|
Dense="true"
|
||||||
@{
|
Variant="Variant.Outlined"
|
||||||
int? currentSeason = PrivateEntity.Season ?? 1;
|
Label=""
|
||||||
int? startOffsetSeason = currentSeason > 1 ? -1 : 0;
|
Class="@(PrivateEntity.GlobalEntity.MediaType.Name == "Series" ? "" : "invisible")">
|
||||||
}
|
@{
|
||||||
@for (int? i = startOffsetSeason; i <= 5; i++)
|
int? currentSeason = PrivateEntity.Season ?? 1;
|
||||||
{
|
int? startOffsetSeason = currentSeason > 1 ? -1 : 0;
|
||||||
int? season = currentSeason + i;
|
}
|
||||||
<MudSelectItem Value="@season">Staffel @season</MudSelectItem>
|
@for (int? i = startOffsetSeason; i <= 5; i++)
|
||||||
}
|
{
|
||||||
</MudSelect>
|
int? season = currentSeason + i;
|
||||||
<!--</editor-fold>-->
|
<MudSelectItem Value="@season">Staffel @season</MudSelectItem>
|
||||||
|
}
|
||||||
|
</MudSelect>
|
||||||
|
<!--</editor-fold>-->
|
||||||
|
|
||||||
<!--<editor-fold desc="Dropdown-Episode">-->
|
<!--<editor-fold desc="Dropdown-Episode">-->
|
||||||
<MudSelect
|
<MudSelect
|
||||||
T="int?"
|
T="int?"
|
||||||
Value="PrivateEntity.Episode"
|
Value="PrivateEntity.Episode"
|
||||||
ValueChanged="@(newEpisode => OnEpisodeChange.InvokeAsync(newEpisode))"
|
ValueChanged="@(newEpisode => OnEpisodeChange.InvokeAsync(newEpisode))"
|
||||||
Dense="true"
|
Dense="true"
|
||||||
Variant="Variant.Outlined"
|
Variant="Variant.Outlined"
|
||||||
Label="">
|
Label=""
|
||||||
@{
|
Class="@(PrivateEntity.GlobalEntity.MediaType.Name == "Series" ? "" : "invisible")">
|
||||||
int? currentEpisode = PrivateEntity.Episode ?? 1;
|
@{
|
||||||
int? startOffsetEpisode = currentEpisode > 1 ? -1 : 0;
|
int? currentEpisode = PrivateEntity.Episode ?? 1;
|
||||||
}
|
int? startOffsetEpisode = currentEpisode > 1 ? -1 : 0;
|
||||||
@for (int? i = startOffsetEpisode; i <= 5; i++)
|
}
|
||||||
{
|
@for (int? i = startOffsetEpisode; i <= 5; i++)
|
||||||
int? episode = currentEpisode + i;
|
{
|
||||||
<MudSelectItem Value="@episode">Episode @episode</MudSelectItem>
|
int? episode = currentEpisode + i;
|
||||||
}
|
<MudSelectItem Value="@episode">Episode @episode</MudSelectItem>
|
||||||
</MudSelect>
|
}
|
||||||
<!--</editor-fold>-->
|
</MudSelect>
|
||||||
|
<!--</editor-fold>-->
|
||||||
|
<!--}-->
|
||||||
|
|
||||||
<!--<editor-fold desc="Details Button">-->
|
<!--<editor-fold desc="Details Button">-->
|
||||||
<MudStack Row="true" Justify="Justify.FlexEnd">
|
<MudStack Row="true" Justify="Justify.FlexEnd">
|
||||||
|
|||||||
Reference in New Issue
Block a user