74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using System;
|
|
namespace ThoughtWorks.QRCode.Codec.Util
|
|
{
|
|
|
|
public class ContentConverter
|
|
{
|
|
|
|
internal static char n = '\n';
|
|
|
|
public static String convert(String targetString)
|
|
{
|
|
if (targetString == null)
|
|
return targetString;
|
|
if (targetString.IndexOf("MEBKM:") > - 1)
|
|
targetString = convertDocomoBookmark(targetString);
|
|
if (targetString.IndexOf("MECARD:") > - 1)
|
|
targetString = convertDocomoAddressBook(targetString);
|
|
if (targetString.IndexOf("MATMSG:") > - 1)
|
|
targetString = convertDocomoMailto(targetString);
|
|
if (targetString.IndexOf("http\\://") > - 1)
|
|
targetString = replaceString(targetString, "http\\://", "\nhttp://");
|
|
return targetString;
|
|
}
|
|
|
|
private static String convertDocomoBookmark(String targetString)
|
|
{
|
|
targetString = removeString(targetString, "MEBKM:");
|
|
targetString = removeString(targetString, "TITLE:");
|
|
targetString = removeString(targetString, ";");
|
|
targetString = removeString(targetString, "URL:");
|
|
return targetString;
|
|
}
|
|
|
|
private static String convertDocomoAddressBook(String targetString)
|
|
{
|
|
|
|
targetString = removeString(targetString, "MECARD:");
|
|
targetString = removeString(targetString, ";");
|
|
targetString = replaceString(targetString, "N:", "NAME1:");
|
|
targetString = replaceString(targetString, "SOUND:", n + "NAME2:");
|
|
targetString = replaceString(targetString, "TEL:", n + "TEL1:");
|
|
targetString = replaceString(targetString, "EMAIL:", n + "MAIL1:");
|
|
targetString = targetString + n;
|
|
return targetString;
|
|
}
|
|
|
|
private static String convertDocomoMailto(String s)
|
|
{
|
|
String s1 = s;
|
|
char c = '\n';
|
|
s1 = removeString(s1, "MATMSG:");
|
|
s1 = removeString(s1, ";");
|
|
s1 = replaceString(s1, "TO:", "MAILTO:");
|
|
s1 = replaceString(s1, "SUB:", c + "SUBJECT:");
|
|
s1 = replaceString(s1, "BODY:", c + "BODY:");
|
|
s1 = s1 + c;
|
|
return s1;
|
|
}
|
|
|
|
private static String replaceString(String s, String s1, String s2)
|
|
{
|
|
String s3 = s;
|
|
for (int i = s3.IndexOf(s1, 0); i > - 1; i = s3.IndexOf(s1, i + s2.Length))
|
|
s3 = s3.Substring(0, (i) - (0)) + s2 + s3.Substring(i + s1.Length);
|
|
|
|
return s3;
|
|
}
|
|
|
|
private static String removeString(String s, String s1)
|
|
{
|
|
return replaceString(s, s1, "");
|
|
}
|
|
}
|
|
} |