using System.Windows.Forms;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Linq;
public class HelloWorld
{
public static void Main(Quicker.Public.IStepContext context)
{
string inputData = `标题:��️天真呀:#大风呼呼刮个不停
摘要:#大风呼呼刮个不停 辽宁省-大连市-沙河口区-黑石礁街道-大连百年纪念城雕
链接:https:
时间:2024-05-16 14:00
来源:抖音
作者:��️天真呀
属性:敏感
涉及关键词:沙河口,辽宁,大连
转发数:0
评论数:0
精准地域:辽宁省,大连市,沙河口区
信息等级:一般
舆情类型:其他`;
Console.WriteLine(inputData);
if (inputData.Contains("纠错敏感"))
{
PD_ProcessSelectedCopiedData(inputData);
}
else
{
PD_ProcessData(inputData);
}
}
}
public static void PD_ProcessSelectedCopiedData(string inputData)
{
inputData = inputData.Replace("\r\n纠错敏感 原创已预警发布于: ", " 发布于:");
inputData = Regex.Replace(inputData, @"([\r\n]*\d{2}:\d{2}[\r\n]*)", match => " " + match.Value.Trim() + " ");
inputData = Regex.Replace(inputData, @"([\r\n]*^\s*\d+\s*$[\r\n]*|[\r\n]*^\s*\d+\s*\d+\s*$[\r\n]*|[\r\n]*^\s*\d+\s*\d+\s*\d+\s*$[\r\n]*|[\r\n]*^\s*\d+\s*\d+\s*\d+\s*\d+\s*$[\r\n]*|[\r\n]*^\s*\d+\s*\d+\s*\d+\s*\d+\s*\d+\s*$[\r\n]*|[\r\n]*^\s*\d+\s*\d+\s*\d+\s*\d+\s*\d+\s*\d+\s*$[\r\n]*)", "\r\n>>>", RegexOptions.Multiline);
inputData = Regex.Replace(inputData, @"(\r\n|^)(.*\d{2}:\d{2}.*)(?=\r\n|$)", "-$2");
inputData = inputData.Replace(". ", ".");
inputData = inputData.Replace("\r\n\r\n\r\n", "\r\n");
PD_WriteToClipboard(inputData);
}
public static void PD_ProcessData(string inputData)
{
inputData = inputData.Replace(":", ":").Replace("发布平台:", "来源:").Replace("发布人:", "作者:").Replace("发布地区:", "精准地域:");
Dictionary<string, string> extractedFields = PD_ExtractFieldsUntilNewLine(inputData);
string abstractText = extractedFields["摘要"];
string content = extractedFields["内容"];
string originalPost = extractedFields["原帖"];
string link = extractedFields["链接"];
string time = extractedFields["时间"];
string source = extractedFields["来源"];
string author = extractedFields["作者"];
string exactLocation = extractedFields["精准地域"];
string formattedTime = "";
string formattedExactLocation = "";
string detailedReport = "";
if (!string.IsNullOrEmpty(exactLocation))
{
formattedExactLocation = PD_RemoveCommas(exactLocation);
}
if (!string.IsNullOrEmpty(time))
{
formattedTime = PD_ConvertTime(time);
}
if (string.IsNullOrEmpty(abstractText) || abstractText.Trim() == "")
{
abstractText = content;
if (string.IsNullOrEmpty(content) || content.Trim() == "")
{
abstractText = originalPost;
if (string.IsNullOrEmpty(originalPost) || originalPost.Trim() == "")
{
abstractText = "视频显示";
}
}
}
if (source == "今日头条" || source == "今日头条微头条")
{
source = "微头条";
}
if (abstractText.EndsWith(",") || abstractText.EndsWith(",") || abstractText.EndsWith("。") || abstractText.EndsWith("!") || abstractText.EndsWith("!") || abstractText.EndsWith("?") || abstractText.EndsWith("?"))
{
detailedReport = formattedTime + ",“" + author + "”" + source + "称," + abstractText + "。" + link;
}
else
{
detailedReport = formattedTime + ",“" + author + "”" + source + "称," + abstractText + "。" + link;
}
detailedReport = detailedReport.Replace("\r\n", "").Replace("辽宁省-", ",定位:").Replace("辽宁省", "").Replace("市-", "市").Replace("区-", "区").Replace("县-", "县");
Console.WriteLine(detailedReport);
}
public static Dictionary<string, string> PD_ExtractFieldsUntilNewLine(string input)
{
var result = new Dictionary<string, string>();
string[] fieldsToExtract = { "摘要:", "内容:", "原帖:", "链接:", "时间:", "来源:", "作者:", "精准地域:" };
foreach (var field in fieldsToExtract)
{
string pattern = field + @"(.*?)(?=\n)";
Match match = Regex.Match(input, pattern, RegexOptions.Singleline);
if (match.Success)
{
string value = match.Groups[1].Value.Trim();
result[field.TrimEnd(':')] = value;
}
else
{
result[field.TrimEnd(':')] = string.Empty;
}
}
return result;
}
static void PD_WriteToClipboard(string text)
{
Clipboard.SetText(text);
}
static string PD_ConvertTime(string time)
{
DateTime dateTime = DateTime.ParseExact(time, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
string formattedWithLeadingZeros = dateTime.ToString("MM月dd日", CultureInfo.CurrentCulture);
string formattedTime = RemoveLeadingZeros(formattedWithLeadingZeros);
return formattedTime;
}
static string RemoveLeadingZeros(string input)
{
return Regex.Replace(input, @"^(0)([1-9](日|月))", m => m.Value.Substring(1)).Replace("月0", "月");
}
static string PD_RemoveCommas(string input)
{
return input
.Replace(",", string.Empty)
.Replace(",", string.Empty);
}