コード例 #1
0
        private void MapOne(Dictionary <string, object> obj)
        {
            // [run_id] [smallint] NOT NULL
            BulkWriter.WriteSmallInt(RunID);

            // [tweet_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "id"));

            // [user_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "user.id"));

            // [retweeted_tweet_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "retweeted_status.id"));

            // [retweeted_user_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "retweeted_status.user.id"));

            // [created_at] [datetime] NOT NULL
            BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "created_at"));

            // [retweeted_at] [datetime] NOT NULL
            BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "retweeted_status.created_at"));

            BulkWriter.EndLine();
        }
コード例 #2
0
        private void MapOne(Dictionary <string, object> obj)
        {
            ArrayList um = (ArrayList)JsonUtil.GetValue(obj, "entities.hashtags");

            for (int i = 0; i < um.Count; i++)
            {
                // [run_id] [smallint] NOT NULL
                BulkWriter.WriteSmallInt(RunID);

                // [tweet_id] [bigint] NOT NULL
                BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "id"));

                // [user_id] [bigint] NOT NULL
                BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "user.id"));

                // [tag] [nvarchar](50) NOT NULL
                //string tag = (string)((Dictionary<string, object>)um[i])["text"];
                //WriteTinyInt(tag.Substring(0, Math.Min(tag.Length, 50)));
                BulkWriter.WriteVarChar(JsonUtil.GetString(um[i], "text"), 50);

                // [created_at] [datetime] NOT NULL
                BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "created_at"));

                BulkWriter.EndLine();
            }
        }
コード例 #3
0
        private void WriteUrl(Dictionary <string, object> obj, ArrayList um)
        {
            if (um != null)
            {
                for (int i = 0; i < um.Count; i++)
                {
                    string url = (string)((Dictionary <string, object>)um[i])["url"];
                    if (url.StartsWith("http://t.co/"))
                    {
                        url = url.Substring(12);
                    }
                    else if (url.StartsWith("http://t.co/"))
                    {
                        url = url.Substring(13);
                    }
                    else
                    {
                        continue;
                    }

                    // [run_id] [smallint] NOT NULL
                    BulkWriter.WriteSmallInt(RunID);

                    // [tweet_id] [bigint] NOT NULL
                    BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "id"));

                    // [user_id] [bigint] NOT NULL
                    BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "user.id"));

                    // [url_id] [char](8) NOT NULL
                    BulkWriter.WriteChar(url, 8);

                    // [created_at] [datetime] NOT NULL
                    BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "created_at"));

                    // [expanded_url] [varchar](8000)
                    if (((Dictionary <string, object>)um[i]).ContainsKey("expanded_url"))
                    {
                        BulkWriter.WriteVarChar((string)((Dictionary <string, object>)um[i])["expanded_url"], 8000);
                    }
                    else
                    {
                        BulkWriter.WriteVarChar(null, 8000);
                    }

                    BulkWriter.EndLine();
                }
            }
        }
コード例 #4
0
        private void MapOne(Dictionary <string, object> obj)
        {
            var user = (Dictionary <string, object>)obj["user"];

            // [run_id] [smallint] NOT NULL
            BulkWriter.WriteSmallInt(RunID);

            // [user_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(user, "id"));

            // [created_at] [datetime] NOT NULL
            BulkWriter.WriteDateTime(JsonUtil.GetDateTime(user, "created_at"));

            // [tweeted_at] [datetime] NOT NULL
            BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "created_at"));

            // [screen_name] [nvarchar](50) NOT NULL
            BulkWriter.WriteVarChar(JsonUtil.GetString(user, "screen_name") ?? "", 50);

            // [description] [nvarchar](160) NOT NULL
            BulkWriter.WriteVarChar(Util.UnescapeText(JsonUtil.GetString(user, "description")) ?? "", 160);

            // [favourites_count] [int] NOT NULL
            BulkWriter.WriteInt(JsonUtil.GetNullableInt32(user, "favourites_count") ?? 0);

            // [followers_count] [int] NOT NULL
            BulkWriter.WriteInt(JsonUtil.GetNullableInt32(user, "followers_count") ?? 0);

            // [friends_count] [int] NOT NULL
            BulkWriter.WriteInt(JsonUtil.GetNullableInt32(user, "friends_count") ?? 0);

            // [statuses_count] [int] NOT NULL
            BulkWriter.WriteInt(JsonUtil.GetNullableInt32(user, "statuses_count") ?? 0);

            // [geo_enabled] [bit] NOT NULL
            BulkWriter.WriteBit(JsonUtil.GetNullableBoolean(user, "geo_enabled") ?? false);

            // [lang] [char](5) NOT NULL,
            BulkWriter.WriteChar(JsonUtil.GetString(user, "lang") ?? "", 5);

            // [location] [nvarchar](100) NULL
            BulkWriter.WriteVarChar(Util.UnescapeText(JsonUtil.GetString(user, "location")), 100);

            // [name] [nvarchar](30) NOT NULL
            BulkWriter.WriteVarChar(Util.UnescapeText(JsonUtil.GetString(user, "name")) ?? "", 30);

            // [profile_background_color] [char](6) NOT NULL
            BulkWriter.WriteChar(JsonUtil.GetString(user, "profile_background_color") ?? "000000", 6);

            // [profile_text_color] [char](6) NOT NULL
            BulkWriter.WriteChar(JsonUtil.GetString(user, "profile_text_color") ?? "000000", 6);

            // [protected] [bit] NOT NULL
            BulkWriter.WriteBit(JsonUtil.GetNullableBoolean(user, "protected") ?? false);

            // [show_all_inline_media] [bit] NOT NULL
            BulkWriter.WriteBit(JsonUtil.GetNullableBoolean(user, "show_all_inline_media") ?? false);

            // [utc_offset] [int] NULL
            BulkWriter.WriteNullableInt(JsonUtil.GetNullableInt32(user, "utc_offset"));

            // [verified] [bit] NOT NULL
            BulkWriter.WriteBit(JsonUtil.GetNullableBoolean(user, "verified") ?? false);

            BulkWriter.EndLine();
        }
コード例 #5
0
        private void MapOne(Dictionary <string, object> obj)
        {
            // [run_id] [smallint] NOT NULL
            BulkWriter.WriteSmallInt(RunID);

            // [tweet_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "id"));

            // [created_at] [datetime] NOT NULL
            BulkWriter.WriteDateTime(JsonUtil.GetDateTime(obj, "created_at"));

            // [utc_offset] [int] NULL
            BulkWriter.WriteNullableInt(JsonUtil.GetNullableInt32(obj, "user.utc_offset"));

            // [user_id] [bigint] NOT NULL
            BulkWriter.WriteBigInt(JsonUtil.GetInt64(obj, "user.id"));

            // [place_id] [char](16) NULL
            BulkWriter.WriteNullableChar(JsonUtil.GetString(obj, "place.id"), 16);

            // [lon] [float] NULL
            // [lat] [float] NULL
            // [cx] [float] NOT NULL
            // [cy] [float] NOT NULL
            // [cz] [float] NOT NULL
            // [htm_id] [bigint] NOT NULL
            if (obj.ContainsKey("coordinates") && obj["coordinates"] != null)
            {
                string[] coords = (string[])((ArrayList)JsonUtil.GetValue(obj, "coordinates.coordinates")).ToArray(typeof(string));
                var      lon    = double.Parse(coords[0], System.Globalization.CultureInfo.InvariantCulture);
                var      lat    = double.Parse(coords[1], System.Globalization.CultureInfo.InvariantCulture);
                var      c      = new Cartesian(lon, lat);

                BulkWriter.WriteNullableFloat(lon);
                BulkWriter.WriteNullableFloat(lat);
                BulkWriter.WriteFloat(c.X);
                BulkWriter.WriteFloat(c.Y);
                BulkWriter.WriteFloat(c.Z);
                BulkWriter.WriteBigInt(Trixel.CartesianToHid20(c));
            }
            else
            {
                BulkWriter.WriteNullableFloat(null);
                BulkWriter.WriteNullableFloat(null);

                BulkWriter.WriteFloat(0);
                BulkWriter.WriteFloat(0);
                BulkWriter.WriteFloat(0);
                BulkWriter.WriteBigInt(0);
            }

            // [in_reply_to_tweet_id] [bigint] NULL
            BulkWriter.WriteNullableBigInt(JsonUtil.GetNullableInt64(obj, "in_reply_to_status_id"));

            // [in_reply_to_user_id] [bigint] NULL
            BulkWriter.WriteNullableBigInt(JsonUtil.GetNullableInt64(obj, "in_reply_to_user_id"));

            // [possibly_sensitive] [bit] NULL
            // [possibly_sensitive_editable] [bit] NULL
            if (obj.ContainsKey("possibly_sensitive") && obj.ContainsKey("possibly_sensitive_editable"))
            {
                BulkWriter.WriteNullableBit(JsonUtil.GetNullableBoolean(obj, "possibly_sensitive"));
                BulkWriter.WriteNullableBit(JsonUtil.GetNullableBoolean(obj, "possibly_sensitive_editable"));
            }
            else
            {
                BulkWriter.WriteNullableBit(null);
                BulkWriter.WriteNullableBit(null);
            }

            // [retweet_count] [int] NOT NULL
            BulkWriter.WriteInt(JsonUtil.GetNullableInt32(obj, "retweet_count") ?? 0);

            // [text] [nvarchar](150) NOT NULL
            var text = Util.UnescapeText(System.Web.HttpUtility.HtmlDecode(JsonUtil.GetString(obj, "text")));

            BulkWriter.WriteVarChar(text, 150);

            // [truncated] [bit] NOT NULL
            BulkWriter.WriteBit(JsonUtil.GetNullableBoolean(obj, "truncated") ?? false);

            // [lang] [char](5) NOT NULL
            BulkWriter.WriteChar(JsonUtil.GetString(obj, "user.lang") ?? "??", 5);

            // [lang_word_count] [tinyint] NOT NULL
            // [lang_guess1] [char](2) NOT NULL
            // [lang_guess2] [char](2) NOT NULL
            int    words;
            string lang1, lang2;

            if (LanguageUtil.DetectLanguage(text, out words, out lang1, out lang2))
            {
                BulkWriter.WriteTinyInt((sbyte)words);     // [lang_word_count]
                BulkWriter.WriteChar(lang1, 2);            // [lang_guess1]
                BulkWriter.WriteChar(lang2, 2);            // [lang_guess2]
            }
            else
            {
                BulkWriter.WriteTinyInt(0);
                BulkWriter.WriteChar("??", 2);
                BulkWriter.WriteChar("??", 2);
            }

            BulkWriter.EndLine();
        }