Skip to content

Commit

Permalink
add - Added emoji generator (pt. 1)
Browse files Browse the repository at this point in the history
---

We've added a generator that adds support for all Unicode emojis.

---

Type: add
Breaking: False
Doc Required: False
Backport Required: False
Part: 1/1
  • Loading branch information
AptiviCEO committed Oct 13, 2024
1 parent 3361d5e commit 8a77520
Show file tree
Hide file tree
Showing 7 changed files with 410 additions and 2 deletions.
11 changes: 10 additions & 1 deletion Textify.Data/Textify.Data.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
<PackageIcon>OfficialAppIcon-Textify-512.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageId>Textify.Offline.Data</PackageId>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
</PropertyGroup>

<ItemGroup>
Expand All @@ -35,10 +37,17 @@
</None>
</ItemGroup>

<ItemGroup>
<Compile Remove="$(CompilerGeneratedFilesOutputPath)/**/*.cs" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Textify.EmojiArrayGen\Textify.EmojiArrayGen.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="../assets/WordsList/Processed/*.zip" Visible="false" />
<EmbeddedResource Include="../assets/UnicodeList/chars/*.zip" Visible="false" />
<EmbeddedResource Include="../assets/UnicodeList/emoji/emoji-test.txt" Visible="false" />
<EmbeddedResource Include="../assets/NamesList/Processed/*.zip" Visible="false" />
<EmbeddedResource Include="../assets/FigletFonts/*.flf" Visible="false" />
</ItemGroup>
Expand Down
56 changes: 56 additions & 0 deletions Textify.Data/Unicode/Emoji.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
//
// Textify Copyright (C) 2023-2024 Aptivi
//
// This file is part of Textify
//
// Textify is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Textify is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY, without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//

namespace Textify.Data.Unicode
{
/// <summary>
/// Emoji information
/// </summary>
public class Emoji
{
private readonly string name = "";
private readonly string sequence = "";
private readonly EmojiStatus status = EmojiStatus.Component;

/// <summary>
/// Emoji name
/// </summary>
public string Name =>
name;

/// <summary>
/// A sequence of characters that represent an emoji
/// </summary>
public string Sequence =>
sequence;

/// <summary>
/// Emoji status
/// </summary>
public EmojiStatus Status =>
status;

internal Emoji(string name, string sequence, EmojiStatus status)
{
this.name = name;
this.sequence = sequence;
this.status = status;
}
}
}
33 changes: 33 additions & 0 deletions Textify.Data/Unicode/EmojiManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//
// Textify Copyright (C) 2023-2024 Aptivi
//
// This file is part of Textify
//
// Textify is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Textify is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY, without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//

namespace Textify.Data.Unicode
{
/// <summary>
/// Emoji management tools
/// </summary>
public static partial class EmojiManager
{
/// <summary>
/// Gets a list of emoticons
/// </summary>
public static Emoji[] GetEmojis() =>
emojis.Values;
}
}
48 changes: 48 additions & 0 deletions Textify.Data/Unicode/EmojiStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//
// Textify Copyright (C) 2023-2024 Aptivi
//
// This file is part of Textify
//
// Textify is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Textify is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY, without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//

namespace Textify.Data.Unicode
{
/// <summary>
/// Emoji status enumeration
/// </summary>
public enum EmojiStatus
{
/// <summary>
/// Emoji doesn't have a status
/// </summary>
None,
/// <summary>
/// Emoji is a component (excluding Regional_Indicators, ASCII, and non-Emoji.)
/// </summary>
Component,
/// <summary>
/// Emoji is fully qualified
/// </summary>
FullyQualified,
/// <summary>
/// Emoji is minimally qualified
/// </summary>
MinimalQualified,
/// <summary>
/// Emoji is not qualified
/// </summary>
NotQualified,
}
}
Loading

0 comments on commit 8a77520

Please sign in to comment.